Hibernate的xml配置文件中关于主键生成策略可能没写对,检查下previewId的属性配置。
解决方案 »
- java调用.bat问题,过来的瞧瞧
- 读取考勤机数据时,Can't get object clsid from progid
- java 如何过滤损坏的文件(比如磁盘坏了,造成文件损坏无法读取)
- Axis2怎样开发服务器端异步服务
- 关于 myeclipse7.0 注册码
- 请问做一个类似京都规模的商城估计要多久啊?
- spring 小问题,${} 不能使用了,谁帮我看看
- actionForm 设值
- =======有没有哪位知道 深圳市亚天科技有限公司 ????急急!!!!!
- 求助,用SNMP获得MAC物理地址的方法
- 用Hibernate操作Oracle的序列式,hbm配置文件中这几个属性是什么意思
- 如何实现JPanel的位置不可移动
一般将previed_id做自增长就可以了(逻辑主键)。
<class name="cn.edu.bjfu.phy.model.PreviewLibrary" table="preview_library" catalog="physical_exp">
<id name="previewId" type="java.lang.Long">
<column name="preview_id" />
<generator class="identity" />
</id>
<many-to-one name="experiment" class="cn.edu.bjfu.phy.model.Experiment" fetch="select">
<column name="experiment_id" not-null="true" />
</many-to-one>
<property name="model" type="java.lang.Integer">
<column name="model" not-null="true">
</column>
</property>
<property name="title" type="java.lang.String">
<column name="title" length="65535" not-null="true" />
</property>
<property name="answer" type="java.lang.String">
<column name="answer" length="10" not-null="true" />
</property>
<property name="peopleId" type="java.lang.Long">
<column name="people_id" />
</property>
<property name="createTime" type="java.sql.Timestamp">
<column name="create_time" length="19" />
</property>
<property name="modifyTime" type="java.sql.Timestamp">
<column name="modify_time" length="19" />
</property>
</class>
</hibernate-mapping>
这个是配置文件 ,我们的主键生成策略都是identity,这样可以吗?
这个是experiment的实体类和hbm文件
public class Experiment implements java.io.Serializable { // Fields private static final long serialVersionUID = 1L;
/** 实验id */
private Long experimentId;
/** 实验名称 */
private String experimentName;
/** 实验内容 */
private String content;
/** 实验标志 :1=必做实验,2=选课通称,3=选修实验*/
private Integer experimentTag;
/** 选修是否开始:1=没开始;2=开始 */
private Integer selectExpTag;
/** 创建时间 */
private Timestamp createTime;
/** 修改时间 */
private Timestamp modifyTime;
/** 预习题库 */
private Set previewLibraries = new HashSet(0);
/** 学生选修的实验 */
private Set peoples = new HashSet(0);
/** 该实验的课程表 */
private Set courses = new HashSet(0);
/** 实验成绩表 */
private Set scores = new HashSet(0);<hibernate-mapping>
<class name="cn.edu.bjfu.phy.model.Experiment" table="experiment" catalog="physical_exp">
<id name="experimentId" type="java.lang.Long">
<column name="experiment_id" />
<generator class="identity" />
</id>
<property name="experimentName" type="java.lang.String">
<column name="experiment_name" length="100" not-null="true" />
</property>
<property name="content" type="java.lang.String">
<column name="content" length="65535" />
</property>
<property name="experimentTag" type="java.lang.Integer">
<column name="experiment_tag" not-null="true">
</column>
</property>
<property name="selectExpTag" type="java.lang.Integer">
<column name="select_exp_tag">
</column>
</property>
<property name="createTime" type="java.sql.Timestamp">
<column name="create_time" length="19" />
</property>
<property name="modifyTime" type="java.sql.Timestamp">
<column name="modify_time" length="19" />
</property>
<set name="previewLibraries" inverse="true">
<key>
<column name="experiment_id" not-null="true" />
</key>
<one-to-many class="cn.edu.bjfu.phy.model.PreviewLibrary" />
</set>
<set name="peoples" inverse="true">
<key>
<column name="experiment_id" />
</key>
<one-to-many class="cn.edu.bjfu.phy.model.People" />
</set>
<set name="courses" inverse="true">
<key>
<column name="experiment_id" not-null="true" />
</key>
<one-to-many class="cn.edu.bjfu.phy.model.Course" />
</set>
<set name="scores" inverse="true">
<key>
<column name="experiment_id" />
</key>
<one-to-many class="cn.edu.bjfu.phy.model.Score" />
</set>
</class>
</hibernate-mapping>
谢谢! 以后我就没多少积分了,还怎么提问啊