Hibernate many-to-many data retrieval
我有两个对象用户和联系人,具有多对多关系,我正在为这个关系 USER_CONTACT
使用中间表
在这个关联中保存数据没问题,但是检索是个问题。
我需要根据用户检索数据,但我得到的是所有用户的所有联系人。
如果你能告诉我我做错了什么就好了。
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
public class User {
private Integer userID; private String userLoginEmail; private String password; private Set<Contact> contactSet = new HashSet<Contact>(); . . } public class Contact implements Serializable { |
用户.hbm.xml:
1
2 3 4 5 6 7 8 9 10 11 12 |
<class name=“User” table=“USERACCOUNT”>
<id column=“USER_ID” length=“500” name=“userID”> <generator class=“increment” /> </id> <property column=“USER_LOGIN_EMAIL” generated=“never” lazy=“false” length=“100” name=“userLoginEmail” /> <property column=“USER_FIRSTNAME” generated=“never” lazy=“false” length=“100” name=“userFirstName” /> <property column=“USER_LASTNAME” generated=“never” lazy=“false” length=“100” name=“userLastName” /> <set name=“contactSet” table=“USER_CONTACT” inverse=“false” lazy=“false” fetch=“select” cascade=“all”> <key column=“USER_ID”/> <many–to–many column=“CONTACT_ID” class=“com.smallworks.model.Contact”/> </set> </class> |
联系人.hbm.xml
1
2 3 4 5 6 7 8 9 10 11 12 13 |
<class name=“Contact” table=“CONTACT”>
<id column=“CONTACT_ID” length=“500” name=“contactID”> <generator class=“increment”/> </id> <property column=“GIVEN_NAME” generated=“never” lazy=“false” length=“100” name=“givenName”/> <property column=“FAMILY_NAME” generated=“never” lazy=“false” length=“100” name=“familyName”/> <!– many to many mapping with the User via User_Contact table –> |
这就是我试图检索数据的方式,我认为这是不正确的。
1
|
如果我能知道如何根据用户获取联系人,那就太好了。
1
2 3 4 5 6 |
- 谢谢,它起作用了,我应该意识到这一点,并且由于它的延迟加载正确的集合已经在 User 对象中。
- 嗨@Yori Kusanagi,我正在尝试通过查询来完成上述操作,请查看stackoverflow.com/questions/17653399/您能否查看一下您是否可以帮助查询。
来源:https://www.codenong.com/15868868/