我有A表和B表两个表,
B表引用了A表主键作为外键,
两个表的主键都不是序列,
我在hibernate配置主键id 时都设置成 <generator class="assigned" />
我在执行向B表添加一条记录的时候报了如下错误:
ERROR com.aptech.dao.TDeviceDAO - save failed
org.hibernate.id.IdentifierGenerationException: ids for this class must be manually assigned before calling save(): com.aptech.pojos.TDevice
请问该如何解决??
B表引用了A表主键作为外键,
两个表的主键都不是序列,
我在hibernate配置主键id 时都设置成 <generator class="assigned" />
我在执行向B表添加一条记录的时候报了如下错误:
ERROR com.aptech.dao.TDeviceDAO - save failed
org.hibernate.id.IdentifierGenerationException: ids for this class must be manually assigned before calling save(): com.aptech.pojos.TDevice
请问该如何解决??
解决方案 »
- struts2 “No result defined for action and result input”的问题
- hibernate到底有什么优势?
- 关于字符串截取问题,请教各位高手
- JavaEE6规范中文版(CHM)
- dom4j XPPReader 怎么没有 read() 方法?
- 有关hibernate中批量更新的问题,在线等...
- 差别在哪里?
- Spring
- 求教:如何把win2000下的网站(mysql+jsp+jboss)安装到liunx下?要注意哪些细节?
- 如何将tomcat5整合到jbuilderx中
- 谁有能让IE等浏览器工具栏上刷新按钮失效的JS代码,只有35分了。全部送上
- org.apache.commons.fileupload.FileUploadException: Processing of multipart/form-
须在调用save()前调用(或者说在调用save()前必须指定id,其实就是说,主键值不能为空!)。
把主键的生成方式改为native,它的特征是能够根据底层数据库自动选择主键生成方式。
中的assigned换成native
顶9楼
B表的主键就不能设成<generator class="assigned" />
插入时自己指定主键
A表:
<?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">
<!--
Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
<class name="com.aptech.pojos.Zonghe1" table="ZONGHE1" schema="SCOTT">
<id name="FGoodsId" type="java.lang.String">
<column name="F_GOODS_ID" length="20" />
<generator class="assigned" />
</id>
<property name="FGoodsName" type="java.lang.String">
<column name="F_GOODS_NAME" length="50" />
</property>
<property name="FPrice" type="java.lang.Double">
<column name="F_PRICE" scale="4" />
</property>
<property name="FCount" type="java.lang.Long">
<column name="F_COUNT" precision="22" scale="0" />
</property>
<property name="FRe" type="java.lang.String">
<column name="F_REMARK" length="100" />
</property>
<set name="TDevices" inverse="true">
<key>
<column name="F_GOODS_ID" length="20" />
</key>
<one-to-many class="com.aptech.pojos.TDevice" />
</set>
</class>
</hibernate-mapping>B表:
<?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">
<!--
Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
<class name="com.aptech.pojos.TDevice" table="T_DEVICE" schema="SCOTT">
<id name="TId" type="java.lang.String">
<column name="T_ID" length="20" />
<generator class="assigned" />
</id>
<many-to-one name="zonghe1" class="com.aptech.pojos.Zonghe1" fetch="select">
<column name="F_GOODS_ID" length="20" />
</many-to-one>
<property name="TName" type="java.lang.String">
<column name="T_NAME" length="20" />
</property>
<property name="TPrice" type="java.lang.Double">
<column name="T_PRICE" precision="18" scale="1" />
</property>
<property name="TFrom" type="java.lang.String">
<column name="T_FROM" length="100" />
</property>
</class>
</hibernate-mapping>