gpt4 book ai didi

java - 使用 Hibernate 创建具有权限的简单用户/组模型(注释)

转载 作者:太空宇宙 更新时间:2023-11-04 08:33:34 25 4
gpt4 key购买 nike

这很可能是一个非常基本的问题,但是:

基本上,用户实体有一个 ID 和一个权限枚举。该组有一个 ID 和一个名称。

我想知道如何对用户可以位于多个组中、在不同组中具有不同权限级别的关系进行建模。每个组当然可以有多个成员。

我应该用 Hibernate 惯用的方式解决这个问题的方法是什么?向用户添加一些成员资格字段?组的成员资格字段?两个都?为它创建一个新类?将这些东西连接在一起需要哪些注释?

最佳答案

我使用了下一个架构

用户实体类

@Entity
@Table(name = "user")
public class UserEntity implements Serializable {

private Long user_id;
private String username;
private String password;

public UserEntity() {

}

public UserEntity(String name, String passwd) {
username = name;
password = passwd;
}

@Column(name = "password", nullable = false)
public String getPassword() {
return password;
}

public void setPassword(String password) {
this.password = password;
}

@Id
@Column(name = "id")
@GeneratedValue(strategy = GenerationType.AUTO)
public Long getUser_id() {
return user_id;
}

public void setUser_id(Long user_id) {
this.user_id = user_id;
}

@Column(name = "username", nullable = false)
public String getUsername() {
return username;
}

public void setUsername(String username) {
this.username = username;
}
}

AuthorityEntity类

@Entity
@Table(name = "authority_role")
public class AuthorityEntity implements Serializable {

private Integer id;
private String authority;
private List<UserEntity> people;

public AuthorityEntity() {
}

public AuthorityEntity(String authString) {
authority = authString;
}

@Column(name = "authority", nullable = false)
public String getAuthority() {
return authority;
}

public void setAuthority(String authority) {
this.authority = authority;
}

@Id
@Column(name = "id")
@GeneratedValue(strategy = GenerationType.AUTO)
public Integer getId() {
return id;
}

public void setId(Integer id) {
this.id = id;
}

@ManyToMany(targetEntity = UserEntity.class,
cascade = {CascadeType.PERSIST, CascadeType.MERGE})
@JoinTable(name = "authority_role_people",
joinColumns =
@JoinColumn(name = "authority_role_id"),
inverseJoinColumns =
@JoinColumn(name = "user_id"))
public List<UserEntity> getPeople() {
return people;
}

public void setPeople(List<UserEntity> people) {
this.people = people;
}
}

事实上 - 这就是 Spring Security 插件的实现方式。根据您的情况,您可以实现该架构,这对您来说更有用。

关于java - 使用 Hibernate 创建具有权限的简单用户/组模型(注释),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6936140/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com