hibernate一对多映射 保存数据问题
现在有两张表用户(user) 订单表(order) 结构如下:
create table user (
id number(20) not null, //主键 用户Id
name varchar2(128) //用户名
)
create table order (
id number(20) not null, //主键
user_id number(20), //用户Id 对应user表的主键 (外键)
order_no varchar2(128) //订单号
)
从对象的角度看,用户与订单是一对多的关系,于是我使用hibernate在user表对应的映射文件中做了一对多映射,如下:
<set name="orders" cascade="save-update" inverse="false" lazy="true">
<key column="user_id" />
<one-to-many class="xxx.xx.xx.Order" />
</set>
然后在user表对应的域对象中增加了一个集合private Set<Order> orders;
现在我创建一个User对象, 然后在创建一个Order对象集合, 然后把order集合赋值给User对象, 然后保存User对象, hibernate就会级联自动将Order对象也给我保存了。
可是,如果在保存Order对象时发生了错误(比如not-null等), hibernate也会将User信息插入到数据库,这要如何避免呢? 是依靠事务吗? 还是有其他配置。
请大家多帮帮忙, 谢谢!~
------解决方案--------------------
一对多关系管理时,如果是单向关联,直接在多的一方设置关系就行了,如果是双向关联,那就把主控方放在多的一方!楼主试试行不
------解决方案--------------------
------解决方案--------------------