gpt4 book ai didi

Spring JPA CrudRepository save(Entity) 在 id 字段中返回 0

转载 作者:行者123 更新时间:2023-12-03 23:10:58 25 4
gpt4 key购买 nike

我正在将 spring JPA/Hibernate 5 添加到一个旧项目中。我在运行 CrudRepository .save(Entity)针对 Mainframe/DB2 的方法 table 。该行插入得很好,但是 returnedEntity.getIdColumn()0在里面。我真的需要 ID 进行进一步处理。有人可以帮忙吗?非常感谢!

@Entity
Table(name="MY_TABLE")
public class myClass {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name="ID_COLUMN")
private Long idColumn;
...

}

身份是唯一有效的策略类型。
这是服务类:
@Transactional
public Entiry insertEntity(Entity originalEntity) {
return MyRepository.save(originalEntity);
}
Runner class:
Entity originalEntity = createEntity();
Entity returnedEntity = ServiceClass.insertEntity(originalEntity);
System.out.println(originalEntity.getIdColumn());
System.out.println(returnedEntity.getIdColumn());

最佳答案

我的猜测是,您正试图在将事务刷新到数据库之前获取 ID。因此 JPA 不知道将分配什么 id 并返回 0。

已编辑 :
我建议有这样的事情:

@Transactional
public Entity save( .....) {
//some code
repository.save(entity);
//some code
return entity;
}

事务将在此方法结束时刷新,将从它返回的实体应具有真实 ID。

关于Spring JPA CrudRepository save(Entity) 在 id 字段中返回 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52564337/

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