【发布时间】:2012-01-20 18:16:47
【问题描述】:
我遵循了这个博客教程并成功地让它工作: http://jugojava.blogspot.com/2011/02/jdbc-security-realm-with-glassfish-and.html
我已将我的两个实体命名为 Group 和 User。具有双向多对多关系。
现在我在博客中这样做的原因是因为我正在创建一个管理员页面,我希望能够在其中添加新用户。我还让用户有机会自己注册,他们将拥有user的角色。
@Entity
public class Group implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String groupName;
@ManyToMany
@JoinTable(joinColumns = {@JoinColumn(name="group_id")}, inverseJoinColumns = {@JoinColumn(name="user_id")})
private List<User> users;
....
}
和
@Entity
@Table(name = "app_user")
public class User implements Serializable {
public static final String ALL = "User.all";
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String firstName;
private String lastName;
private Integer age;
private String username;
private String email;
private String password;
@ManyToMany(mappedBy = "users")
private List<Group> groups;
....
}
我的问题是我如何在用户注册时将组 user 分配给用户,而无需我从视图中的列表中选择组?
这是我在应用程序代码中所做的,但它将代码绑定到数据库中组的 id,有没有更好的方法?
来自 EJB 的方法
public void persistAsUser(User user) {
Group group = new Group(2L, "user");
user.addGroup(group);
userRepository.persist(user);
}
【问题讨论】:
标签: java jakarta-ee jpa