hibernate column中one-to-many的column是设置什么

hibernate映射文件set key one-to-many - 推酷
hibernate映射文件set key one-to-many
hibernate映射文件set key one-to-many的配置。
POJOs如下:
Customer类------&customer表
Order类对应----------&orders表 customer(1)&---------------&(n)order
publicclassCustomer
privateTimestamp registerT
privateSet&Order& orders = newHashSet&Order&();
/*setter and getter method*/
publicclassOrder
privateString orderN
/*setter and getter method*/
Set集合映射:
Hibernate为集合映射提供了专用的标签元素,Set集合映射,就使用&set&标签表示:
&?xml version=&1.0& encoding=&utf-8&?&
&!DOCTYPE hibernate-mapping PUBLIC &-//Hibernate/Hibernate Mapping DTD 3.0//EN&
&http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd&&
&hibernate-mapping&
&class name=&com.suxiaolei.hibernate.pojos.Customer&table=&customer&&
&!--主键设置 --&
&id name=&id&type=&string&&
&column name=&id&&&/column&
&generator class=&uuid&&&/generator&
&!--属性设置 --&
&property name=&username&column=&username&type=&string&&&/property&
&property name=&password&column=&password&type=&string&&&/property&
&property name=&age&column=&age&type=&integer&&&/property&
&property name=&registerTime&column=&register_time&type=&timestamp&&&/property&
&set name=&orders&inverse=&true&cascade=&all&&
&key column=&customer_id&&&/key&
&one-to-many class=&com.suxiaolei.hibernate.pojos.Order&/&
&/hibernate-mapping&
&set&标签中的&name&属性表示customer对象中关系集合的属性名,&inverse&与&cascade&属性说明(参考这里)。在数据库中表示&一对多&的关系是通过外键关联的方式实现的,&多方&通过持有&一方&的主键值来确定关系,怎么持有&一方&的主键值?&多方&将使用一列来存储&一方&的主键值,然后将此列作为外键列参照&一方&的主键列。所以使用Hibernate开发时需要将两表的关系列(外键列)告诉Hibernate,&key column=&customer_id&&&/key&就是完成这个工作的,Hibernate就能根据 &customer_id&列取出关联信息。例如:从customer表中取出一条记录后,Hibernate会根据该customer记录的主键值再从order表中查找&custom_id&列,取出值相等的记录,然后组装到Customer对象中的set集合属性中,反之亦然。因为取出来的记录(只是一些零碎的值,还没有组装成对象)需要存放到Set集合中,所以要告诉Hibernate在Set集合里面能放什么类型的数据。&one-to-many&这个标签就是完成这个工作的,&class&属性是指定这个这个Set集合里面元素的类型。
&?xml version=&1.0& encoding=&utf-8&?&
&!DOCTYPE hibernate-mapping PUBLIC &-//Hibernate/Hibernate Mapping DTD 3.0//EN&
&http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd&&
&hibernate-mapping&
&class name=&com.suxiaolei.hibernate.pojos.Order&table=&orders&&
&id name=&id&type=&string&&
&column name=&id&&&/column&
&generator class=&uuid&&&/generator&
&property name=&orderNumber&column=&orderNumber&type=&string&&&/property&
&property name=&balance&column=&balance&type=&integer&&&/property&
&many-to-one name=&customer&class=&com.suxiaolei.hibernate.pojos.Customer&&
&column name=&customer_id&&&/column&
&/many-to-one&
&/hibernate-mapping&
&many-to-one&标签是设置&一对多&关系中的&多方&的,name指定了哪一个属性是关系属性,&class&指定了关系属性的类型(也指定了与哪一个表关联), &column&属性是指定这个关联属性是按照&customer_id&列的值,在customer表中查询获得的。
已发表评论数()
&&登&&&陆&&
已收藏到推刊!
请填写推刊名
描述不能大于100个字符!
权限设置: 公开
仅自己可见hibernate中的many-to-many 和one-to-many还有many-to-one分别是什么意思_百度知道
hibernate中的many-to-many 和one-to-many还有many-to-one分别是什么意思
最好详细说明,感觉都差不多
提问者采纳
&&generator class=&quot.string&property&uuid&
&id& column=&
&set name=&key&/& type=&key column=&quot.&#47./&
&students&generator class=&hibernate-mapping&gt!-- 有多个学生
key 指定的是学生表中的外键
one-to-many 指定存储到student表的持久化类
inverse=&&/teacher&string&;&&class name=&property&one-to-many class=&hibernate-mapping&
&teacher_id&
&hibernate-mapping&property name=&/
&true&string&id&&&#47.& column=&id name=& column=&quot.id name=&quot.Teacher& column=&teacher&&name&&set&gt.teacher_id&&name&
&cnmany-to-many 多对多 比如一个用户可以有多种角色 一种角色可以对用多个不同的用户所以角色和用户之间的关系是多对多的关系 一般要用第三张表来出来两者对应的关系one-to-many 一对多
比如一个老师可以对应很多个学生many-to-one 相反的是多对一
one-to-one
一对一 比如公民和身份证就是一一对应的在hibernate中以1对多为例(老师-学生)配置文件# Teacher.xml
&class&gt:n的关系中(多的一方应该维护关系)
关系的维护问题
&many-to-one name=&name& inverse=&name&quot.hibernate!--
name属性指定的是加载的1这一端的属性的名称
class属性指定加载哪一个持久化类
column属性指定的是按照哪一个外键加载该持久化类
--&&lt.&gt.
&hibernate-mapping&/property name=&student&
&lt.Student&
& class=&id&//
&string&generator& type=&id&quot.Student&quot.hibernate.xml
# S/ table=&id& table=&class name=&true&& type=&uuid&many-to-one&//
&lt.generator&
& 指定关系维护的方向
&lt.itcast.Teacher&&/class& column=&quot.
提问者评价
3Q,我已经保存了你的答案。。谢谢
其他类似问题
按默认排序
其他2条回答
你只要搞懂many-to-many就OK了,one-to-many和many-to-one都是特例!
这是个问题,还是先看看书吧
hibernate的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁 下载
 收藏
该文档贡献者很忙,什么也没留下。
 下载此文档
正在努力加载中...
hibernate的one-to-many中set的sort与order-by
下载积分:30
内容提示:
文档格式:PDF|
浏览次数:1|
上传日期: 11:04:22|
文档星级:
该用户还上传了这些文档
下载文档:hibernate的one-to-many中set的sort与order-by.PDF
官方公共微信hibernate连接sqlserver2000问题的解决(父子关系同时保存时发生 one-to-many & many-to-one)_JSP教程_编程技术
您的位置: &
& hibernate连接sqlserver2000问题的解决(父子关系同时保存时发生 one-to-many & many-to-one)
server|sqlserver|解决|问题
TransOrder:&&set name=&OrderItems& table=&orderitem& lazy=&false& inverse=&true& cascade=&all&&& &key column=&Order_ID&/&& &one-to-many class=&com.kaoyanhelper.dao.OrderItem&/&&& & & &/set&OrderItem:&&class name=&OrderItem& table=&OrderItem&&&&id column=&OrderItem_ID&&name=&Id& &type=&java.lang.Integer&&&&generator class=&identity& /&&&/id&&many-to-one class=&com.xx.dao.TransOrder& name=&TransOrder& column=&Order_ID&/&&&/class&测试main()&public static void main(String[] args) throws HibernateException&{&&Session session = HibernateUtil.currentSession();&&Transaction tx = session.beginTransaction();&&&&&&TransOrder order = new TransOrder();&&order.setAcceptType(&www&);&&order.setAddress(&tom&);&&order.setCity(&changzhou&);&&&&&OrderItem item = new OrderItem();&&item.setItemCount(new Integer(100));&&item.setItemMoney(&1200.2&);&&item.setItemType(&kysj&);&&item.setPaperitemId(new Integer(101));&&item.setResourceitemId(new Integer(102));&&&&&&&order.getOrderItems().add(item);&&&item.setTransOrder(order);&&&session.save(order);&&session.flush();&&&&mit();&&HibernateUtil.closeSession();&}error message:[Microsoft][SQLServer 2000 Driver for JDBC]Can't start a cloned connection while in manual transaction mode.解决方法:居然是ms的问题,搞了几天,浪费了,一般是当你在一个SQL SERVER的JDBC连接上执行多个STATEMENTS的操作,或者是手动事务状态(AutoCommit=false) 并且使用 direct (SelectMethod=direct) 模式. Direct 模式是默认的模式. 解决办法当你使用手动事务模式时,必须把SelectMethod 属性的值设置为 Cursor, 或者是确保在你的连接上只有一个STATEMENT操作。设置hibernate.cfg.xml&property name=&hibernate.connection.url&&&&&jdbc:microsoft:sqlserver://Localhost:1433;SelectMethod=DatabaseName=yourdb&&&/property&SelectMethod= 默认是SelectMethod=我是在hibernate syn中使用的 ,我还改 .hibernateSynchronizer文件 ,没有 改 hibernate.cfg.xml ,呵呵 晕。最好两个文件都改,改hibernate.cfg.xml 能成功运行。
( 17:59:01)
( 17:55:20)
( 09:59:06)
( 10:05:04)
( 12:21:23)
( 17:38:41)
( 17:38:31)
( 17:38:28)
相关排行总榜上传时间:
[李腾飞-领航致远]hibernate-029-one-to-many在双向关联中设置inverse=true
推荐弹幕视频
56官方微信
扫一扫发现精彩}

我要回帖

更多关于 hibernatetemplate 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信