我必须为spring/hibernate双向关联编写实用程序方法吗?

pinkon5k  于 2021-07-23  发布在  Java
关注(0)|答案(1)|浏览(464)

我读了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来自动解决这个问题?
顺便说一下,看看索本·杨森的主题。

0s7z1bwu

0s7z1bwu1#

简短的回答:不需要对此进行注解。如果你愿意,你可以自己写这样的注解。但是,手动添加代码时性能会更好,因为这样的注解可能需要反射api。
“实用方法的需求”:这些实用方法有助于同步关系的双方,即如果您添加 AuthorBook ,您还必须添加 BookAuthor . 您不需要这些实用程序方法,可以手动将对象添加到彼此中。然而,这些实用方法避免了同步自动发生时的故障。

相关问题