Hibernate的native主键生成策略报错问题
这是我的部分映射文件:
<class name="com.hibernate.Users" table="students">
<id name="sid" type="int" >
<column name="sid"/>
<generator class="native"/>
</id>
<property name="sname" type="java.lang.String">
<column name="sname"/>
</property>
<property name="gender" type="java.lang.String">
<column name="gender" />
</property>
</class>
bean:
public class Users {
private int sid;
private String sname;
private String gender;
省略get and set 方法
public Users(int sid, String sname, String gender) {
this.sid = sid;
this.sname = sname;
this.gender = gender;
}
@Override
public String toString() {
return "Users{" +
"sid=" + sid +
", sname='" + sname + '\'' +
", gender='" + gender + '\'' +
'}';
}
以下是测试的方法:
@Test
public void insert(){//插入函数
Users u=new Users();
u.setSid(1501);
u.setSname("dell");
u.setGender("male");
session.save(u);
}
下面是终端报错及tostring()打印的内容:
Hibernate:
insert
into
students
(sname, gender)
values
(?, ?)
ERROR: Field 'sid' doesn't have a default value (注释:sid是我定义的主键)
问题来了,前面我明明给主键赋值了sid=1501,可是为什么还是显示主键不存在???