Как читать данные с помощью Hibernate после многих многих отображения
У меня есть две таблицы Роль и справа, и Hibernate создали таблицу 1 role_right в результате многие ко многим картографирования.
Теперь я хочу, чтобы получить все RightName, соответствующий RoleName как отдельно
admin--> create user, data entry, login, logout
data entry operator--> data entry, logout, login
data analyst--> data analysis, logout, login
Помогите мне решить эту проблему. Вот мой код
UserRole класс
@Entity
@Table(name="UserRole")
public class UserRole implements Serializable {
@Id @GeneratedValue(strategy = GenerationType.AUTO)
@Column(name="RoleID", unique=true, nullable=false)
private int roleId;
@Column(name="RoleName", nullable=false)
private String roleName;
@Column(name="RoleRight")
private String roleRight;
@ManyToMany
@JoinTable(name="Role_Right",[email protected](name="Role_Id"),
[email protected](name="Right_Id"))
private Collection<UserRights> userRoleMapping = new ArrayList<UserRights>();
public Collection<UserRights> getUserRoleMapping() {
return userRoleMapping;
}
public void setUserRoleMapping(Collection<UserRights> userRoleMapping) {
this.userRoleMapping = userRoleMapping;
}
public String getRoleRight() {
return roleRight;
}
public void setRoleRight(String roleRight) {
this.roleRight = roleRight;
}
public int getRoleId() {
return roleId;
}
public void setRoleId(int roleId) {
this.roleId = roleId;
}
public String getRoleName() {
return roleName;
}
public void setRoleName(String roleName) {
this.roleName = roleName;
}
}
UserRole класс
@Entity
@Table(name="UserRights")
public class UserRights implements Serializable {
@Id @GeneratedValue(strategy = GenerationType.AUTO)
@Column(name="RightID", unique=true, nullable=false)
private int rightId;
@Column(name="RightName", nullable=false)
private String rightName;
@ManyToMany(mappedBy="userRoleMapping")
private Collection<UserRole> userRightsMapping = new ArrayList<UserRole>();
public Collection<UserRole> getUserRightsMapping() {
return userRightsMapping;
}
public void setUserRightsMapping(Collection<UserRole> userRightsMapping) {
this.userRightsMapping = userRightsMapping;
}
public int getRightId() {
return rightId;
}
public void setRightId(int rightId) {
this.rightId = rightId;
}
public String getRightName() {
return rightName;
}
public void setRightName(String rightName) {
this.rightName = rightName;
}
}
Я попробовал некоторые вещи, как этот
session.getUserRightsMapping()
этот запрос очень близко к тому, что я хочу
Строка query = "select Role_Id, RightName FROM userrights join role_right on" + "userrights.RightID = role_right.Right_Id";
, но не знает, что делать дальше
Что вы пробовали? Как насчет вызова 'role.getRights()' и итерации через каждое право, чтобы получить его имя? –
Я добавил свой код в вопрос, пожалуйста, проверьте его – Androider