0
我有以下表格:休眠:INNER JOIN映射和未映射表使用HibernateTempate
USER
ID VARCHAR(32) INTEGER NOT NULL
ROLE
ID INTEGER NOT NULL
USERROLE /*Many to Many*/
USER_ID VARCHAR(32) NOT NULL
ROLE_ID INTEGER NOT NULL
,我使用註釋映射數據庫表到我的班。現在
/* Mapping for USER table */
@Entity
@Table (name="USER")
public class User{
@Id
@Column (name="ID")
private String id;
@ManyToMany
@JoinTable (name="USERROLE", joinColumns = {@JoinColumn (name="USER_ID")},
inverseJoinColumns = {@JoinColumn (name="ROLE_ID")})
@LazyCollection (LazyCollectionOption.FALSE)
private List<Role> roles;
}
/* Mapping for ROLE table */
@Entity
@Table (name="ROLE")
public class Role {
@Id
@Column (name="ID")
private int id;
}
我想這樣做,加入ROLE和UserRole的表,以便我能得到有用戶分配給它的這些角色的查詢。
--edit
我有Role.id,我要檢查是否這種作用是在表的UserRole被引用。在原生SQL中,我會這樣做:
SELECT DISTINCT A.* from ROLE A INNER JOIN USERROLE B
WHERE A.ID = B.ROLE_ID AND A.ID = ?;
如何在Hibernate中使用HibernateTemplate做到這一點?
感謝您的快速回復,但這些答案會給我基於User.id的角色集合 – Macchiato
我編輯了帖子並添加了一些信息,如果它讓你感到困惑。謝謝! – Macchiato
請參閱我編輯的答案。 –