在hibernate中,默认many one one many 都是使用多方引用一方的ID,作为引用关系,现在我希望能将多方引用一方的自定义字段,请大家帮忙!!!!
解决方案 »
- 急求java计算器代码详细解析
- hibernate 疑惑代码
- jxl怎么合并单元格
- 昨天我喝多了 是静态网址 怎么储存到xml里?
- java问题
- 在jsf中,怎么样把子窗口的值传到父窗口,不用javascript
- 1、2、2、3、4、5 六个数, 输出所有排列 4不能在3号位置 3和4不能相连
- 一个高中学历无产者是怎样变成月薪4800元的程序员的
- 连接mysql数据库的web service代码
- 100分,请大家帮帮忙给点建议哈,迷茫中。。。。
- ireport+struts2导出excel报错 其他都行
- hibernate多对多级联添加问题...........................................................
class="com.appstore.po.respo.Channel_recommend" update="false"
insert="false" foreign-key="page_code">
<column name="page_id"></column>
</many-to-one><set name="oth_Page" inverse="true" table="Oth_page">
<key column="page_id" foreign-key="page_code"></key>
<one-to-many class="com.appstore.po.otherpo.OthPage"/>
</set>
我希望Oth_page的page_id引用Channel_recommend的page_code
但是上面的写法不对,希望大家讲解
首先更正一下,hibernate不主张用联合主键。hibernate的创始人Gavin King 说:严重反对使用composite-id,任何情况下 不要使用复合主键。不知道楼主是不是想外键不是自增序列,而是另一个唯一字段?
我也正想做这个,订单明细表配置:
<many-to-one name="order" column="ORDER_ID" class="com.cn.pojo.Order"/>
订单表配置:
<!--复合多对多-->
<bag name="orderproduct" table="order_product">
<key>
<column name="ORDER_ID"></column>
</key>
<composite-element
class="com.cn.pojo.OrderProduct">
<property name="quantity"></property>
<many-to-one column="productcode" name="product"
class="com.cn.pojo.Product">
</many-to-one>
</composite-element>
</bag>
我把对应的column设置为非id自增字段,可是当插入时,级联插入的值还是自增的id。并非order_id自定义字段。
我的订单表有2个id,一个是自增id,一个是order_id=“cws001”这样的自定义编号
我想在明细的时候对应的订单id是订单表的order_id cws001这样的内容。
可是我如上的配置却只能做到把id自增序列给级联进去。楼主共同讨论下????
那他设计出来干嘛的
至于这个我也不明白了,不过复合主键确实比较少用,我也没用过。
每张表都会给一个序列标识id。
我刚才试了下我的那个,
<bag>配置的那段改成
<bag name="orderproduct">
<key column="ORDER_ID" />
<one-to-many class="com.cn.pojo.OrderProduct"/>
</bag>这样也能执行级联操作,只是比上面那个多了一条update语句,意味着性能不如上一个。
hibernate的多对多好难啊都不知道什么时候操作什么。