是否可以用Hibernate映射整个实体而不是它的仅一列? 我有用户和角色实体。每个用户可以有多个角色,但是我只想获取角色的标题。
我想要什么:
class User {
private Set<String> roles;
}
我不想要的东西:
class User {
private Set<Role> roles;
}
是否可以通过ManyToMany关系以单个查询或某些其他选项来实现此目的?是否在获取后不使用DTO并复制角色标题?
谢谢。
p.s。我有3个表:一个用于用户,一个用于角色,一个用于将用户连接到角色。
答案 0 :(得分:0)
自定义User
构造函数可以工作:
class User {
private List<Role> roles; // changed to List for easier access
User(String fName, String lName, String roleName, long roleId){
this.fName=fName;
this.lName=lName;
this.roles = new ArrayList<>();
this.roles.get(0).setRoleName(roleName);
this.roles.get(0).setRoleId(roleId);
}
}
然后发出您的查询:
select new your.package.User(u.firstName, u.lastName, u.role.name, u.role.id) from User u where ...