我的DTO
正在使用JPA Hibernate
存储,我能够存储其他字段,但在尝试为用户存储此关系时遇到麻烦。userRoleSet
HashSet
有代表用户角色的ENUM
s。有些用户没有角色,有些用户有1到3个角色。每个角色都是不同的。我如何得到关于表示这在我的数据库和使用JPA
?此刻,@ many many不起作用,我错过了什么?从本质上讲,我需要能够查询数据库中的特定用户,并让它返回分配给该用户的角色。
UserType枚举
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;
}
}
@ManyToMany
注释用于映射两个实体之间的关联。对于简单类型的集合,要使用的注释是@ElementCollection
。
PS:你总是阅读和post完整和准确的错误信息时,你得到的东西"不工作"