Hibernate的native主键生成策略报错问题

天下第一小白 2017-02-17 12:27:26
这是我的部分映射文件:

<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,可是为什么还是显示主键不存在???
...全文
83 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

5,658

社区成员

发帖
与我相关
我的任务
社区描述
Web开发应用服务器相关讨论专区
社区管理员
  • 应用服务器社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧