Hibernate的xml配置文件中关于主键生成策略可能没写对,检查下previewId的属性配置。
解决方案 »
- 安装完成TOMCAT无法打开浏览器浏览
- 散分:初学 JAVA,请求高手指点?168分敬上。。。本贴分不够再来一贴补上。
- 天津---外资银行系统(正式员工)---java/c++开发
- 请教spring2.5 mvc中 关于注解的用法
- 想知道下jsp页面可不可以实现url重写呢
- Hibernate的一个疑问
- 谁有hibernate api中文文档?请发我邮箱。[email protected]
- struts中ActionError中 ActionMessage有什么区别?
- weblogin部署JAR问题!请各位指教!
- Resin怎么配置servlet环境
- 用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>
谢谢! 以后我就没多少积分了,还怎么提问啊