表tbltime如下:
列名 数据类型 长度 允许空
id bigint 8 标识列,标识增量为1
timeid nchar 6 √
time_segment nvarchar 20 (主键)
status nvarchar 2 √
modifyuser nvarchar 50 √
modifytime datetime 8 √Tbltime.hbm.xml文件的内容如下:
<?xml version="1.0"?>
<!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 - Hibernate Tools
-->
<hibernate-mapping>
<class name="student.message.Tbltime" table="tbltime" schema="dbo"
catalog="student">
<id name="timeSegment" type="java.lang.String">
<column name="time_segment" length="20" />
<generator class="assigned" />
</id>
<property name="id" type="java.lang.Long">
<column name="id" not-null="true" />
</property>
<property name="timeid" type="java.lang.String">
<column name="timeid" length="6" />
</property>
<property name="status" type="java.lang.String">
<column name="status" length="2" />
</property>
<property name="modifyuser" type="java.lang.String">
<column name="modifyuser" length="50" />
</property>
<property name="modifytime" type="java.util.Date">
<column name="modifytime" length="23" />
</property>
</class>
</hibernate-mapping>类Tbltime如下:
package student.message;import java.util.Date;public class Tbltime implements java.io.Serializable {
private static final long serialVersionUID = -6492070262736379025L; private String timeSegment; private Long id; private String timeid; private String status; private String modifyuser; private Date modifytime; public Tbltime() {
} public Tbltime(String timeSegment, Long id) {
this.timeSegment = timeSegment;
this.id = id;
} public Tbltime(String timeSegment, Long id, String timeid, String status,
String modifyuser, Date modifytime) {
this.timeSegment = timeSegment;
this.id = id;
this.timeid = timeid;
this.status = status;
this.modifyuser = modifyuser;
this.modifytime = modifytime;
} public String getTimeSegment() {
return this.timeSegment;
} public void setTimeSegment(String timeSegment) {
this.timeSegment = timeSegment;
} public Long getId() {
return this.id;
} public void setId(Long id) {
this.id = id;
} public String getTimeid() {
return this.timeid;
} public void setTimeid(String timeid) {
this.timeid = timeid;
} public String getStatus() {
return this.status;
} public void setStatus(String status) {
this.status = status;
} public String getModifyuser() {
return this.modifyuser;
} public void setModifyuser(String modifyuser) {
this.modifyuser = modifyuser;
} public Date getModifytime() {
return this.modifytime;
} public void setModifytime(Date modifytime) {
this.modifytime = modifytime;
}
}运行时会报以下的错误:
org.hibernate.PropertyValueException: not-null property references a null or transient value: student.message.Tbltime.id这是为什么?
列名 数据类型 长度 允许空
id bigint 8 标识列,标识增量为1
timeid nchar 6 √
time_segment nvarchar 20 (主键)
status nvarchar 2 √
modifyuser nvarchar 50 √
modifytime datetime 8 √Tbltime.hbm.xml文件的内容如下:
<?xml version="1.0"?>
<!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 - Hibernate Tools
-->
<hibernate-mapping>
<class name="student.message.Tbltime" table="tbltime" schema="dbo"
catalog="student">
<id name="timeSegment" type="java.lang.String">
<column name="time_segment" length="20" />
<generator class="assigned" />
</id>
<property name="id" type="java.lang.Long">
<column name="id" not-null="true" />
</property>
<property name="timeid" type="java.lang.String">
<column name="timeid" length="6" />
</property>
<property name="status" type="java.lang.String">
<column name="status" length="2" />
</property>
<property name="modifyuser" type="java.lang.String">
<column name="modifyuser" length="50" />
</property>
<property name="modifytime" type="java.util.Date">
<column name="modifytime" length="23" />
</property>
</class>
</hibernate-mapping>类Tbltime如下:
package student.message;import java.util.Date;public class Tbltime implements java.io.Serializable {
private static final long serialVersionUID = -6492070262736379025L; private String timeSegment; private Long id; private String timeid; private String status; private String modifyuser; private Date modifytime; public Tbltime() {
} public Tbltime(String timeSegment, Long id) {
this.timeSegment = timeSegment;
this.id = id;
} public Tbltime(String timeSegment, Long id, String timeid, String status,
String modifyuser, Date modifytime) {
this.timeSegment = timeSegment;
this.id = id;
this.timeid = timeid;
this.status = status;
this.modifyuser = modifyuser;
this.modifytime = modifytime;
} public String getTimeSegment() {
return this.timeSegment;
} public void setTimeSegment(String timeSegment) {
this.timeSegment = timeSegment;
} public Long getId() {
return this.id;
} public void setId(Long id) {
this.id = id;
} public String getTimeid() {
return this.timeid;
} public void setTimeid(String timeid) {
this.timeid = timeid;
} public String getStatus() {
return this.status;
} public void setStatus(String status) {
this.status = status;
} public String getModifyuser() {
return this.modifyuser;
} public void setModifyuser(String modifyuser) {
this.modifyuser = modifyuser;
} public Date getModifytime() {
return this.modifytime;
} public void setModifytime(Date modifytime) {
this.modifytime = modifytime;
}
}运行时会报以下的错误:
org.hibernate.PropertyValueException: not-null property references a null or transient value: student.message.Tbltime.id这是为什么?
<column name="time_segment" length="20" />
<generator class="assigned" />
</id>
这段代码应该是设置当前的标志列
<id name="id" type="java.lang.Integer">
<column name="id" />
<generator class="native" />
</id>
<property name="timeSegment" type="java.lang.String">
<column name="timeSegment" not-null="true" />
</property>
而且你这个表有没有与别的表有 一对1 或许一对多 多对多 的关系的话需要在对表在进行修改。。
或
<generator class="identity" />
<generator class="identity" /> 详细的hibernate主键说明请参考 http://www.java2000.net/viewthread.jsp?tid=241
<column name="ID" not-null="true" />
<generator class="uuid" />
</id>
<generator class="uuid" />或者
<generator class="native" />
自增的我都是这么做的
catalog="student">
改成:
<class name="student.message.Tbltime" table="tbltime">