小编use*_*122的帖子

Java Jpa @GeneratedValue 智能生成空值和非空值

我的本地 postgres 数据库中有 10-15 个实体。所有实体都包含一个整数类型的标识。请参阅下面的代码片段。

@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id", unique = true, nullable = false)
@NonNull
private Integer id;
Run Code Online (Sandbox Code Playgroud)

我的 CRUD(T 是我的实体)类包含用于将新实体插入适当表的 create 方法

private final JpaRepository<T, Integer> jpaRepository;
private final EntityManager entityManager;
private final Class<T> clazz;

@Override
public T create(T entity) {
    return getJpaRepository().saveAndFlush(entity);
}
Run Code Online (Sandbox Code Playgroud)

我正在努力实现下一个目标:

  1. 如果我调用 create 方法,其中实体包含!= nullid 字段的一些值 ( ) 然后将它与该 id 完全保存(未生成)。
  2. 如果我调用 create 方法,其中实体包含值== null- 然后使用自动生成的 id 作为数据库提供创建它。

为什么我需要这个?我正在尝试用我从 JSON 实体中获取的实体填充内存中的小型数据库,并使用相同的 ID 保存它。

我的问题是注释@GeneratedValue(strategy = GenerationType.AUTO/SEQUENCE/TABLE/IDENTITY) …

java spring identity jpa spring-data-jpa

7
推荐指数
1
解决办法
1510
查看次数

标签 统计

identity ×1

java ×1

jpa ×1

spring ×1

spring-data-jpa ×1