gpt4 book ai didi

mysql - Spring @GeneratedValue 注释不适用于自动增量字段

转载 作者:太空宇宙 更新时间:2023-11-03 11:49:31 24 4
gpt4 key购买 nike

我使用 MyEclipse 中的 Scaffolding 生成 Web 应用程序项目,使用 spring MVC 和 MySQL 数据库。请给我一些解决问题的线索。

我遇到了 id 主键的问题。如果我使用,它不会自动增加事件:@GeneratedValue(策略=GenerationType.IDENTITY)@GeneratedValue(策略=GenerationType.AUTO)@GeneratedValue(策略=GenerationType.SEQUENCE)@GeneratedValue(strategy=GenerationType.TABLE)

我有几个主键设置为 AUTO_INCREMENT 的表。像这个例子:

CREATE TABLE IF NOT EXISTS `ehealthdb`.`timestamp` (
`id` BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT '',
`login_date` DATETIME NULL COMMENT '',
`logout_date` DATETIME NULL COMMENT '',
`create_date` DATETIME NOT NULL COMMENT '',
`update_date` DATETIME NULL COMMENT '',
`isActive` TINYINT(1) NULL COMMENT '',
PRIMARY KEY (`id`) COMMENT '')
ENGINE = InnoDB;

当我尝试使用生成的帖子 URL 和以下 json 负载来保存时:

{
"loginDate":"1374839856000",
"logoutDate":"1374839856000",
"createDate":"1374839856000",
"updateDate":"1374839856000",
"isActive":true
}

Request processing failed; nested exception is javax.persistence.PersistenceException: org.hibernate.id.IdentifierGenerationException: ids for this class must be manually assigned before calling save(): ehealth.domain.Timestamp

我认为这是由缺少的@GeneratedValue 引起的,它没有在我的主键上创建脚手架。我必须像下面这样手动添加它:

但是还是不行。还是报错。

@Id
@GeneratedValue(strategy=GenerationType.IDENTITY) //add this
@Column(name = "id", unique = true, nullable = false)
@Basic(fetch = FetchType.EAGER)

@XmlElement
Integer id;

最佳答案

根本不要尝试设置 ID 字段。它是自动处理的。

使用@GeneratedValue(strategy=GenerationType.IDENTITY)。确保你的 Persistence.xml 有

<property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect" />

可能应该使用 Hibnerate 版本 4 或 5。

此外,我从未在 ID 列上看到过 FetchType。删除它。

@Basic(fetch = FetchType.EAGER)

我这样做:

@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Long id;

此外,可能应该了解完整的设置。什么版本的 Spring?

关于mysql - Spring @GeneratedValue 注释不适用于自动增量字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36366399/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com