为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用JPA批注对MYSQL自动增量字段进行批注

如何使用JPA批注对MYSQL自动增量字段进行批注

摇曳的蔷薇 2019-10-09 15:18:48
直截了当,问题是将对象Operator保存到MySQL DB中。在保存之前,我尝试从该表中进行选择并起作用,因此与数据库的连接也是如此。这是我的Operator对象:@Entitypublic class Operator{   @Id   @GeneratedValue   private Long id;   private String username;   private String password;   private Integer active;   //Getters and setters...}为了保存,我使用JPA EntityManager的persist方法。这是一些日志:Hibernate: insert into Operator (active, password, username, id) values (?, ?, ?, ?)com.mysql.jdbc.JDBC4PreparedStatement@15724a0: insert into Operator (active,password, username, id) values (0, 'pass', 'user', ** NOT SPECIFIED **)我的看法是,问题是自动递增的配置,但我不知道在哪里。尝试了一些我在这里看到的技巧: Hibernate不尊重MySQL auto_increment主键字段,但是这些都不起作用如果需要任何其他配置文件,我将提供它们。DDL:CREATE TABLE `operator` ( `id` INT(10) NOT NULL AUTO_INCREMENT,`first_name` VARCHAR(40) NOT NULL,`last_name` VARCHAR(40) NOT NULL,`username` VARCHAR(50) NOT NULL,`password` VARCHAR(50) NOT NULL,`active` INT(1) NOT NULL,PRIMARY KEY (`id`))
查看完整描述

3 回答

?
森栏

TA贡献1810条经验 获得超5个赞

请确保id数据类型为Long而不是String,如果它将为字符串,则@GeneratedValue批注将不起作用,并且为


@Id @GeneratedValue(strategy=GenerationType.IDENTITY)

private String id;


create table VMS_AUDIT_RECORDS (id **varchar(255)** not null auto_increment primary key (id))

那应该是


create table VMS_AUDIT_RECORDS (id **bigint** not null auto_increment primary key (id))


查看完整回答
反对 回复 2019-10-09
  • 3 回答
  • 0 关注
  • 574 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信