天下第一小白 2017-02-17 01:35 采纳率: 40%
浏览 1422
已结题

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

这是我的部分映射文件:












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是我定义的主键)

问题来了,我把主键生成策略改成increment的时候,主键自动从1开始,而不是我设置的1501,当我把主键生成策略改成native的时候,就会报错主键不存在,前面我明明给主键赋值了sid=1501,可是为什么还是显示主键不存在???
更多
分享到:

  • 写回答

2条回答 默认 最新

  • JE_GE 2017-02-17 15:31
    关注

    你把表删除在重新创建
    或者修改hibernate.hbm2dd.auto=create

    评论

报告相同问题?

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 MATLAB动图问题
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名