问题描述
我详细贴出代码说下吧 类的关系是: 目录: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分,全部都奉上了,帮忙下 问题补充:<div class="quote_title">sheep3600 写道</div><div class="quote_div">要用都用,要不用都不用,千万不要一个用一个不用。你滴明白?<br /><br /><br /></div><br />不是我一个用注解一个用xml,我的意思是说把那个xml用注解来表示,怎么表示,不是我不会注解,而是这个特殊:<br /> 部门:Org继承Directory<br /> 部门关系:OrgSubjection继承DirectorySubjection<br />我现在是<br /><pre name="code" class="java">public class SiteDirectory extends Directory {private Set<SiteDirectorySubjection> subjections; //目录的上级目录 private Set<SiteDirectorySubjection> childSubjections; //目录的下级目录...@OneToMany(mappedBy="directoryId", cascade={CascadeType.REMOVE}, fetch=FetchType.LAZY) @OrderBy("id ASC") public Set<SiteDirectorySubjection> getSubjections() { return subjections; }...</pre><br /><br />但是假如说我现在有另外两个类<br /> 部门:Org继承Directory<br /> 部门关系:OrgSubjection继承DirectorySubjection<br />这样的话我又得在Org里配置上一对多的关系,我的Directory作为一个抽象出来的目录类,下面会有不少子类,那我每个类都要重复配置上这样的一对多关系。怎么在Directory里面配置上跟DirectorySubjection的一对多关系,下面的子类继承之后就不需要每个都再重复配置
解决方案
需要什么样的关系就配什么关系就可以了,需要公用的就放在最基本的那个pojo里,其他的需要扩展的就继承。不是还有override呢么,不行就override了。
解决方案二:
呵呵,我的意思就是SiteDirectory继承DirectorySiteDirectorySubjection继承DirectorySubjection这四个都用annotation的形式,相互之间继承不会有影响。但是如果Directory、DirectorySubjection用xml,而SiteDirectory、SiteDirectorySubjection用注解,那麻烦可就不可预知了。如果你需要知道注解怎么写,建议你去看api或者demo附上一小段代码,仅供参考@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; }....}
解决方案三:
要用都用,要不用都不用,千万不要一个用一个不用。你滴明白?
解决方案四:
本人建议你去看看网络上关于hibernate的视频教程,那里面讲的很详细