我详细贴出代码说下吧
类的关系是:
目录:SiteDirectory继承Directory
目录关系:SiteDirectorySubjection继承DirectorySubjection
public class Directory extends BasePojo { private Set<? extends DirectorySubjection> subjections; //目录的上级目录 private Set<? extends DirectorySubjection> childSubjections; //目录的下级目录 ... }
public class DirectorySubjection extends BasePojo { private long directoryId; //目录ID private long parentDirectoryId; //上级目录ID ... }
public class SiteDirectory extends Directory { ... }
public class SiteDirectorySubjection extends DirectorySubjection { ... }
以前没用泛型,xml配置如下
<class name="XXX.XXX.XXX.XXX.pojo.SiteDirectory" table="site_directory"> ... <set cascade="delete" inverse="true" lazy="true" name="subjections" table="site_directory_subjection" order-by="id"> <key column="directoryId" /> <one-to-many class="XXX.XXX.XXX.pojo.SitebDirectorySubjection" /> </set> <set cascade="delete" inverse="true" lazy="true" name="childSubjections" table="site_directory_subjection"> <key column="parentDirectoryId" /> <one-to-many class="XXX.XXX.XXX.pojo.SiteDirectorySubjection" /> </set> ...
现在加上了泛型,用注解方式怎么配置
我只有30分,全部都奉上了,帮忙下
需要什么样的关系就配什么关系就可以了,需要公用的就放在最基本的那个pojo里,其他的需要扩展的就继承。不是还有override呢么,不行就override了。
本人建议你去看看网络上关于hibernate的视频教程,那里面讲的很详细
要用都用,要不用都不用,千万不要一个用一个不用。你滴明白?
呵呵,我的意思就是
SiteDirectory继承Directory
SiteDirectorySubjection继承DirectorySubjection
这四个都用annotation的形式,相互之间继承不会有影响。
但是如果Directory、DirectorySubjection用xml,而SiteDirectory、SiteDirectorySubjection用注解,那麻烦可就不可预知了。
如果你需要知道注解怎么写,建议你去看api或者demo
附上一小段代码,仅供参考
[code="java"]
@Entity
@Table(name="user")
@Proxy(lazy = false)
public class User extends BaseObject implements Serializable, UserDetails {
....
@ManyToMany(fetch = FetchType.EAGER)
@JoinTable(
name="user_role",
joinColumns = { @JoinColumn( name="user_id") },
inverseJoinColumns = @JoinColumn( name="role_id")
)
@OneToMany(cascade=CascadeType.ALL, fetch=FetchType.LAZY, mappedBy="user")
public Set<BudgetCenter> getBudgetCenters() {
return this.budgetCenters;
}
....
}
[/code]