gpt4 book ai didi

java - Hibernate:添加到列表的实体的ID

转载 作者:行者123 更新时间:2023-12-01 04:15:41 26 4
gpt4 key购买 nike

我正在使用 Spring Data JPA + Hibernate。在将实体添加到其他实体的列表并保存后,我需要获取实体的 ID。这是代码:

@Entity
public class Product extends AbstractAuditable<Long> {


@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
@JoinColumn(name = "product_id", nullable = false)
private List<Feedback> feedbacks = new ArrayList<Feedback>();

...

}


@Entity
public class Feedback extends AbstractPersistable<Long> {

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "product_id", insertable = false, updatable = false, nullable = false)
private Product product;

...

}


public interface ProductRepository extends JpaRepository<Product, Long> {

}


Feedback feedback = new Feedback();
product.getFeedbacks().add(feedback);
productRepository.saveProduct(product);
feedback.getId(); // returns null

反馈保存后如何正确获取ID?

最佳答案

您可以从 Hibernate Session 接口(interface)(或 EntityManager 接口(interface))执行刷新方法来“从底层数据库重新读取给定实例的状态”。示例:

session.save(object);
session.flush();
session.refresh(object);

您可以在此处找到更多信息:

关于java - Hibernate:添加到列表的实体的ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19476479/

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