以下代码仅显示ID为0

@Id
@GeneratedValue(strategy=GenerationType.AUTO, generator="PROJECT_SEQ_GEN")
@SequenceGenerator(name="PROJECT_SEQ_GEN", sequenceName="X.X_PROJECT_SEQ", allocationSize=1)
private long projectId;

我尝试了SEQUENCEAUTO但是两者的结果相同。 x_project_seq.nextval在我的Oracle数据库中工作正常。 我想继续使用数据库中已经定义的顺序。

根据Spring入门指南- 使用JPA访问数据 ...

“ Customer的id属性用@Id注释,以便JPA将其识别为对象的ID。id属性也用@GeneratedValue注释以指示应自动生成ID。”

从他们的示例看来,他们所做的只是创建new Customer ,并且ID是自动生成的。 我在这里想念什么?

#1楼 票数:1

您为实现使用了错误的GenerationType 更新策略声明以使用strategy = GenerationType.SEQUENCE并简单地将PROJECT_SEQ_GEN用作sequenceName值。

@Id
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="PROJECT_SEQ_GEN")
@SequenceGenerator(name="PROJECT_SEQ_GEN", sequenceName="PROJECT_SEQ_GEN", allocationSize=1)
private long projectId;

#2楼 票数:0 已采纳

花了我一整个上午,但我终于解决了这个问题。

我使用Hibernate工具自动生成POJO,并且所有注释都放置在方法级别,但是,Spring建议(需要?)在字段级别使用它们。 您不能将Id注释都移动到字段级别,因为它可以是一个或另一个。 因此,我遵循了这个答案来定制Hibernate工具,以在现场级别生成带有注释的POJO。

现在一切都很好。

  ask by memo translate from so

未解决问题?本站智能推荐:

1回复

带有JPA的Spring-Boot不保留ID

我需要在我的数据库中插入一条记录,但在某些情况下我需要传递 ID,但是当我手动插入我的 id 时,spring-boot 不使用此 ID 保存,spring-boot 从序列中获得了一个新的这是我的实体 这是我要保存的代码: 而是用 ID 12323 保存,他从我的序列中得到了下一个
2回复

JPA/Spring-boot键“PRIMARY”的重复条目

我正在使用 JPA 进行 mysql 操作,但有几次我在通过 JPA 执行 mysql 保存操作时出错。 执行保存操作时出错 => 无法为事务打开 JPA EntityManager; 键“P​​RIMARY”的重复条目表模型类: Mysql架构: 存储库类: Mysql操作类: 是什么
2回复

spring-boot-starter-data-jpa@OneToMany在更新时不会插入新子项

家长: 孩子: 存储库: 坚持:更新 当我插入一个新的 A 对象时,一切正常,所有子项都很好地插入到数据库中。 但是当我从数据库加载一个 A 对象时,将一些子项添加到列表中然后更新该对象,这不会插入新的子项。 根据 CascadeType 的文档,所有人都应该插入它们。 知道如何解决这个问题吗?
2回复

如何使用gradle在spring-boot中生成JPA元模型?(+lombok)

我想将 JPA 元模型添加到我的项目中 - Spring boot + gradle 我找到了很多例子,我该怎么做,但都是用Maven 。 我也找到了这个网站: https : //plugins.gradle.org/search?term=metamodel 并尝试前三个插件。 对于每个插件,我
1回复

spring-boot/spring-data-jpa通过日期字段自定义查询过滤,返回结果而无需过滤

我正在使用spring-boot-starter-data-jpa-1.5.2.RELEASE开发一个spring-boot REST服务器。 我有以下POJO类层次结构。 首先是基类实体: 接下来是具体的子类患者: 我使用自定义方法如下定义PatientRepository接口,以
2回复

JPA-merge()重复记录问题

我有三个表Account,AccountStatus和AccountStatusCodes。 AccountStatusCodes是一个主表,具有固定的帐户状态代码。 帐户表将列出不同的帐户。 AccountStatus表是一种历史记录表,每当用户对帐户执行某些操作时,旧帐户状态将用标记N
1回复

在单元测试中带有spring-boot-starter-data-jpa的SpringBoot需要强制使用@DataJpaTest

我正在测试Spring Boot功能,作为该领域的新手。 我有一个具有基本依赖性的简单应用程序。 sping-boot-starter-parent 1.5.7 sping-boot-starter sping-boot-starter-data-jpa sping-b
1回复

Spring-boot双向关系或多个查询

我正在使用Spring Boot Web服务,我想知道处理实体之间关系的最佳方法。 第一种方法是使用双向关系,如下所示: 标题实体: TitleCelebrity实体: 因此,每次我请求获得标题时,我都会获得带有TitleCelebrity列表的Title,这就是我想要的。