首页 > 解决方案 > 我是否必须为 Spring/Hibernate 双向关联编写实用程序方法?

问题描述

我阅读了Thorben Janssen关于 Hibernate 和 JPA 的多对多关联的最佳实践的主题。

在那里,Janssen 说双向关联需要实用方法,如下所示:

@Entity
public class Author {
 
    @ManyToMany(mappedBy = "authors")
    private Set<Book> books = new HashSet<Book>();
 
    ...
     
    public void addBook(Book book) {
        this.books.add(book);
        book.getAuthors().add(this);
    }
 
    public void removeBook(Book book) {
        this.books.remove(book);
        book.getAuthors().remove(this);
    }
}

Spring/Hibernate 是否提供任何 @Annotation 来自动解决此问题?

顺便看看Thorben Janssen 的话题

标签: javaspringhibernate

解决方案


简短回答:对此没有注释。如果你愿意,你可以自己写这样一个注解。但是,手动添加代码时性能会更好,因为这样的注解可能需要反射 API。

实用方法的必要性”:这些实用方法有助于同步关系的双方,即如果您将 an 添加Author到 a Book,您还必须将 添加BookAuthor. 您不需要拥有这些实用方法,您可以手动将对象相互添加。然而,这些实用方法避免了失败,因为同步是自动发生的。


推荐阅读