Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.Set;
- import javax.persistence.*;
- @Entity
- public class User {
- @Id
- @GeneratedValue(strategy = GenerationType.AUTO)
- private long id;
- private String email;
- private String password;
- public long getId() {
- return id;
- }
- public void setId(long id) {
- this.id = id;
- }
- public String getEmail() {
- return email;
- }
- public void setEmail(String email) {
- this.email = email;
- }
- public String getPassword() {
- return password;
- }
- public void setPassword(String password) {
- this.password = password;
- }
- public Set<Role> getRoles() {
- return roles;
- }
- public void setRoles(Set<Role> roles) {
- this.roles = roles;
- }
- @ManyToMany(fetch = FetchType.EAGER,cascade = CascadeType.ALL)
- @JoinTable(joinColumns = @JoinColumn(name = "id"),inverseJoinColumns = @JoinColumn(name = "roleId"))
- private Set<Role> roles;
- public User(String email, String password, Set<Role> roles) {
- super();
- this.email = email;
- this.password = password;
- this.roles = roles;
- }
- }
- import java.util.Set;
- import javax.persistence.Entity;
- import javax.persistence.FetchType;
- import javax.persistence.GeneratedValue;
- import javax.persistence.GenerationType;
- import javax.persistence.Id;
- import javax.persistence.ManyToMany;
- @Entity
- public class Role {
- @Id
- @GeneratedValue(strategy = GenerationType.AUTO)
- private long id;
- private String role;
- @ManyToMany(mappedBy = "roles",fetch = FetchType.LAZY)
- private Set<User> users;
- public Role(String role) {
- super();
- this.role = role;
- }
- public long getId() {
- return id;
- }
- public void setId(long id) {
- this.id = id;
- }
- public String getRole() {
- return role;
- }
- public void setRole(String role) {
- this.role = role;
- }
- public Set<User> getUsers() {
- return users;
- }
- public void setUser(Set<User> users) {
- this.users = users;
- }
- }
- try {
- List<String> roleNames = Lists.newArrayList("user, admin, superuser");
- User user = new User("Peter", "Pan");
- List<Role> roles = new ArrayList<>();
- entityManager.getTransaction().begin();
- for (String roleName : roleNames) {
- List<Role> found = entityManager.createQuery("select r from Roles r where r.name = :roleName", Role.class)
- .setParameter("roleName", roleName).getResultList();
- if (found.isEmpty()) {
- Role role = new Role(roleName);
- entityManager.persist(role);
- roles.add(role);
- } else {
- roles.addAll(found);
- }
- }
- user.setRoles(roles);
- entityManager.persist(user);
- entityManager.getTransaction().commit();
- } finally {
- entityManager.close();
- }
Add Comment
Please, Sign In to add comment