【发布时间】:2021-05-06 09:39:17
【问题描述】:
我在我的项目中使用 Hibernate 作为 ORM,其中我有两个处于多对一关系的实体。
@Entity
public class Book {
...
@Id
private int id;
@OneToMany(mappedBy="book")
private List<Page> pages
...
}
@Entity
public class Page {
...
@Id
private int id;
@ManyToOne
@JoinColumn(name="BOOK_ID")
private Book book;
...
}
我必须创建一个函数来获取对 (bookId,pageId) 并检查这两个 id 之间是否存在关系。我很好奇哪种方式更“轻量级”(如果提出的两种方法之间存在差异)以及为什么。
public boolean check(int bookId, int pageId){
final Book book = entityManager.find(bookId,Book.class);
final Page page = entityManager.find(pageId, Page.class);
return page.getBook().getId().equals(book.getId());
}
对
public boolean check(int bookId, int pageId){
final Page page = entityManager.find(pageId, Page.class);
return page.getBook().getId().equals(bookId);
}
请注意,这些清单是简化的,并不反映整个代码(及其背后的想法)。
【问题讨论】:
标签: hibernate orm relational-database one-to-many