直截了当,问题是将对象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))
添加回答
举报
0/150
提交
取消