我面临一些问题,你们中的一些人已经讨论过了,很抱歉再次提出这个问题。
就好像我还是不知道
hibernate
. 我在用
maven2
,请
hibernate 3.2.5 ga
,
spring 2.6.5 SEC01
,
hsqldb 1.8.0.10
,
netbeans 6.7.1
.
我正在构建一个用户和contat管理,并且在我的环境中,我已经设法在“联系人”和“组POJO”之间建立起一种“多对多”的工作关系。
hsql
或
mysql 5.0.51
但是不在本地测试服务器上,因为我不想尝试双一对多的关联,所以在引入中介模型的情况下,我很少想问关于该映射的问题。
下面是我的映射(我只是发布了避免长时间发布的必要内容)
//UserAccount POJO
@OneToMany(targetEntity=PhoneImpl.class, cascade= {CascadeType.ALL})
@org.hibernate.annotations.Cascade(value=org.hibernate.annotations.CascadeType.DELETE_ORPHAN)
private Set<Phone> phones = new HashSet<Phone>();
@OneToMany(targetEntity=ContactImpl.class, cascade={CascadeType.ALL}, mappedBy="userAccount")
@org.hibernate.annotations.Cascade(value=org.hibernate.annotations.CascadeType.DELETE_ORPHAN)
private Set<Contact> contacts = new HashSet<Contact>();
@OneToMany(targetEntity=GroupImpl.class, cascade={CascadeType.ALL}, mappedBy="userAccount")
@org.hibernate.annotations.Cascade(value=org.hibernate.annotations.CascadeType.DELETE_ORPHAN)
private Set<Group> groups = new HashSet<Group>();
//Contact POJO
@ManyToOne(targetEntity=UserAccountImpl.class)
@JoinColumn(name="USER_ACCOUNT_ID",nullable=false)
private UserAccount userAccount;
@OneToMany(targetEntity=PhoneImpl.class, cascade={CascadeType.ALL})
private Set<Phone> phones = new HashSet<Phone>();
@ManyToMany(targetEntity=GroupImpl.class, mappedBy="contacts")
private Set<Group> groups=new HashSet<Group>();
//Group POJO
@ManyToOne(targetEntity=UserAccountImpl.class)
@JoinColumn(name="USER_ACCOUNT_ID",nullable=false)
private UserAccount userAccount;
@ManyToMany(targetEntity=ContactImpl.class,cascade={CascadeType.PERSIST, CascadeType.MERGE})
@JoinTable(name="GROUP_CONTACT_MAP", joinColumns={@JoinColumn(name="GROUP_ID")},
inverseJoinColumns={@JoinColumn(name="CONTACT_ID")})
private Set<Contact> contacts = new HashSet<Contact>();
所以这在我使用hsqldb和本地mysql的机器上很好工作,但是对于使用相同mysql 5.0的本地测试服务器来说,这是不一样的。下面是我的问题:
1。
在本地测试服务器上,有一个要联系的和组的自引用外键。我已经阅读过循环引用的内容,但无法真正判断是否是这种情况。映射中是否有任何可以生成此类自引用外键的内容。或者我未能避免循环引用的内容?
2。
我使用的是Hibernate的Maun-Java持久化,这是一本很棒的书,从我开始练习Hibernate的用法。在这本书中,它是一个11到多个关联。我只是不知道如何在实践中使用它,因为我想切换到那个方法。
二点一
所以我最担心的是如何获得所有在一个组中的联系人和所有在其中有联系人的组?我就是看不清楚。
第2.2条
如果采用这种方法,联系人和组将如何相互引用?他们会互相忽视吗?
也许这些是像你这样的Java程序员的基本经验,所以请原谅我的无知,如果你能给我一些启发的话,我会很高兴的。
谢谢你的阅读!