我的DTO
使用JPA Hibernate
进行存储,我可以存储其他字段,但无法尝试为用户存储此关系。 userRoleSet
HashSet
有ENUM
代表用户拥有的角色。一些用户没有角色,而某人将拥有1到3个角色。每个角色都不同。我如何在我的数据库中使用JPA
表示这一点?目前,@ ManyToMany不起作用,我想念其他的东西?本质上,我需要能够查询数据库中的特定用户并让它返回分配给该用户的角色。
UserType Enums
public enum UserType
{
ALPHA,BRAVO,CHARLIE
}
默认用户DTO JPA
@Entity
@Table(name = "users")
public class DefaultUser implements Serializable
{
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "user_id")
private long user_id;
@Column(name = "user_name")
private String user_name;
@Column(name = "first_name")
private String firstName;
@Column(name = "last_name")
private String lastName;
@Column(name = "password")
private String password;
@ManyToMany
private Set<UserType> userRoleSet = new HashSet<UserType>();
/**
* @return the userTypes
*/
public Set<UserType> getUserTypes()
{
return userRoleSet;
}
/**
*
* @param userTypes
* the userTypes to set
*/
public void setUserTypes(Set<UserType> userTypes)
{
this.userRoleSet = userTypes;
}
/**
* @return the user_id
*/
public long getUser_id()
{
return user_id;
}
/**
* @return the user_name
*/
public String getUser_name()
{
return user_name;
}
/**
* @return the firstName
*/
public String getFirstName()
{
return firstName;
}
/**
* @return the lastName
*/
public String getLastName()
{
return lastName;
}
/**
* @return the password
*/
public String getPassword()
{
return password;
}
/**
* @param user_id
* the user_id to set
*/
public void setUser_id(long user_id)
{
this.user_id = user_id;
}
/**
* @param user_name
* the user_name to set
*/
public void setUser_name(String user_name)
{
this.user_name = user_name;
}
/**
* @param firstName
* the firstName to set
*/
public void setFirstName(String firstName)
{
this.firstName = firstName;
}
/**
* @param lastName
* the lastName to set
*/
public void setLastName(String lastName)
{
this.lastName = lastName;
}
/**
* @param password
* the password to set
*/
public void setPassword(String password)
{
this.password = password;
}
}
答案 0 :(得分:0)
@ManyToMany
注释用于映射两个实体之间的关联。对于简单类型的集合,要使用的注释为@ElementCollection
。
PS:您始终阅读并发布您在“#34;无法正常工作”时所获得的完整且准确的错误消息。