Hibernate一个一对多的配置,不知道怎么从xml改为注解

问题描述

我详细贴出代码说下吧 类的关系是:   目录: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 />&nbsp; 部门:Org继承Directory<br />&nbsp; 部门关系:OrgSubjection继承DirectorySubjection<br />我现在是<br /><pre name="code" class="java">public class SiteDirectory extends Directory {private Set&lt;SiteDirectorySubjection&gt; subjections; //目录的上级目录 private Set&lt;SiteDirectorySubjection&gt; childSubjections; //目录的下级目录...@OneToMany(mappedBy="directoryId", cascade={CascadeType.REMOVE}, fetch=FetchType.LAZY) @OrderBy("id ASC") public Set&lt;SiteDirectorySubjection&gt; getSubjections() { return subjections; }...</pre><br /><br />但是假如说我现在有另外两个类<br />&nbsp; 部门:Org继承Directory<br />&nbsp; 部门关系: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的视频教程,那里面讲的很详细

时间: 2024-10-18 13:07:55

Hibernate一个一对多的配置,不知道怎么从xml改为注解的相关文章

关于hibernate单向一对多的一个问题

问题描述 关于hibernate单向一对多的一个问题 一个学生一个班级,班级一对多学生,班级中有一个Set里面存放学生,我执行下面的代码 @Test public void testUpdateStuToNewClass(){ Session session = factory.openSession(); Transaction transaction = session.beginTransaction(); Student stu = session.get(Student.class,

【SSH系列】Hibernate映射 -- 一对多关联映射

     映射原理       一对多关联映射和多对一关联映射的映射原理是一样一样的,所以说嘛,知识都是相通的,一通百通,为什么说一对多关联映射和多对一关联映射是一样的呢?因为她们都是在多的一端加入一个外键,指向一的一段,关联关系都是在多的一端进行维护,只是我们在写映射的时候发生了变化.       一对多和多对一的映射原理是一样的,但是她们之间也存在着小小的区别,毕竟世界上没有两片完全相同的叶子,她们之间的区别就是维护的关系不同,我们先来看多对一,多端维护一端的关系,在加载多端的时候,可以将一

虚拟主机上,hibernate的连接池如何配置

问题描述 有这方面经验的,希望能指导一下,最好能给出C3PO的配置,或者proxool的配置,如果能解决,分数全部奉上,谢谢:下面的配置不行,而且修改了几个类似参数也不行,最好能说明原因<!-- 最大连接数 --><property name="hibernate.c3p0.max_size">20</property><!-- 最小连接数 --><property name="hibernate.c3p0.min_siz

hibernate-Hibernate 三张表关联 一对多对多 配置

问题描述 Hibernate 三张表关联 一对多对多 配置 当更新classA时,关联多方(classB)能自动更新,单与classB 关联的多方(Class C)却不能自动更新 classC: classB: classA: classA对应的A表主键是B表的外键,ClassB对应的B表主键是C标的外键.现在情况是saveorupdate()A表的时候,B表能自动更新. classA 对应A表 classB :b表 classC: c表 A表的主键Aid 是b表的外键, b表的bid是c表的外

hibernate 枚举一对多该怎么做?

问题描述 hibernate 枚举一对多该怎么做? 例如说我有个类用户,还有个角色枚举.那么如果一个用户有多个角色枚举的标签的话,想用hibernate的一对多,那么怎么对枚举进行映射.跪求一个解决方案,角色枚举只能是枚举.不用一对多也可以. 解决方案 Hibernate中的一对多

Hibernate学习笔记之基本配置详解

1.下载页面 http://in.relation.to/Bloggers/HibernateORM422FinalReleased 2.解压hibernate,将lib目录下面的required目录下所有的jar包拷贝到我们的应用中的类加载路径,如果是web应用,放在/WEB-INF/lib/ 下面 3.如果需要用到数据库源那么将c3p0也放在/WEB-INF/lib/ 下面 4.创建一个持久化的类.这个类的实例将会被hibernate映射到数据库中对应的实例:  代码如下 复制代码 pack

ssh-SSH整合,hibernate注解配置,无hbm.xml,映射出现问题

问题描述 SSH整合,hibernate注解配置,无hbm.xml,映射出现问题 java实体类代码: package cn.com.car.base.entity; import java.io.Serializable; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; i

图片-一个奇怪的问题,不知道你们有没有遇到过!

问题描述 一个奇怪的问题,不知道你们有没有遇到过! eclipse里建立了一个web项目,但是项目里面有些图片能直接打开,有些图片打开是个链接(而且这个链接是无效的...)这是什么原因啊~ 解决方案 这个是默认文件的打开方式把. 你可以自定义图片的打开方式. 解决方案二: 在浏览器打开,然后找到打不开的图片,右键,选择属性,找url,看看文件名有没有错. 解决方案三: 检查无法打开的图片文件,是硬盘中是否存在是第一步: 如果存在,可以考虑: 1) 查看工程中对应的图片的属性,确认与硬盘存贮的目录

android环境配置-需要一个andorid studio环境配置教程

问题描述 需要一个andorid studio环境配置教程 好难配置的环境,求一个最新版本的配置教程,老版本的教程似乎有问题,按下葫芦漂起瓢,就是搞不定啊 解决方案 http://ask.android-studio.org/?/explore/sort_type-new__category-8__day-0__page-3 解决方案二: http://ask.android-studio.org/?/explore/sort_type-new__category-8__day-0__page-