gpt4 book ai didi

hibernate - 在 Hibernate 中使用 CascadeType

转载 作者:行者123 更新时间:2023-12-04 06:11:44 25 4
gpt4 key购买 nike

我正在使用 Hibernate + Spring 和 JSF

当我在 Hibernate 中使用像 @OneTomany 这样的关系时,我遇到了问题。例如:

@Entity
@Table(name = "book")
public class Book {

@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long id;
private String description;
private String image;
private int numberOfPages;
private Date releaseDate;
private String title;

@ManyToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "category_id")
private Category category;

当我删除 CascadeType.ALL 并保存包含类别的书时,类别的 Id 变为空。

谁能帮我解决这个问题?

编辑:这是我的单元测试,当我删除 CascadeType.ALL 时会导致错误
BookDao bookDao = (BookDao) applicationContext.getBean("bookDao");
Category category = new Category();
category.setTitle("Title");
Book book = new Book();
book.setCategory(category);
bookDao.save(book);
long id = book.getCategory().getId();
assertTrue(id > 0);

最佳答案

看看"Cascading life cycle"了解级联的工作原理。除非您手动分配 id,否则实体只会获得分配的 id when it's saved .如果您将保存从 Book 级联到 Category,则保存 Book 也会保存 Category。没有级联,类别不会被保存,因此它没有 id。

关于hibernate - 在 Hibernate 中使用 CascadeType,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7699823/

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