hibernate多表写问题

本文探讨了使用Hibernate框架实现Orders与Order表之间的关联映射,包括如何设置外键以确保数据的一致性和完整性。面对Orders表插入数据时主键未知的问题,及Order表中如何正确设置外键以关联Orders表,提供了详细的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

pojo:
Order

public class Order implements java.io.Serializable {
private int id; //订单自动编号
private int orderId;
private String goodsname; //商品名
private int goodsid; //商品ID
private int count; //购买的数量
private Float price; //单价
}

Orders:

public class Orders implements java.io.Serializable{
private int id; //编号
private String username;//用户名
private int userid; //用户编号
private Date submitTime; //订单提交时间
private Byte ispay; //是否已付款
private int orderscore; //订单积分
private java.util.Set ordere=new java.util.HashSet();
/** }


Orders.hbm.xml: Orders主键自动递增,one to many Order,
Order对应的Order表中orderid 为外键,references Orders(id);

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.qinge.pojo">
<class name="Orders" table="eOrders">
<id name="id" type="java.lang.Integer">
<column name="Id" /><generator class="increment"/></id>
<property name="username" type="java.lang.String">
<column name="Username" length="20" /></property>
<property name="userid" type="java.lang.Integer">
<column name="Userid" length="" /></property>
<property name="submitTime" type="java.lang.Date">
<column name="submitTime" length="" /></property>
<property name="ispay" type="java.lang.Byte">
<column name="Ispay" length="1" /></property>
<property name="orderscore" type="java.lang.Integer">
<column name="OrderScore" /></property>
<set name="ordere" inverse="true" lazy="false"><key>
<column name="Id" precision="10" scale="0" /></key>
<one-to-many class="com.qinge.pojo.Order" /></set>
</class>
</hibernate-mapping>

像这个两个表插入数据市怎样保持关联?
我有疑惑:向Orders 表写数据时,id未知,向Order 表写数据是怎样确定orderId,以保证数据关联?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值