Hibernate ManyToMany不会更新

时间:2014-08-16 17:14:46

标签: java hibernate postgresql

以下是一个例子:

@ManyToMany(targetEntity = Book.class,fetch = FetchType.EAGER, cascade = CascadeType.ALL)
public List<Book> getBooks() {
    return books;
}

在另一堂课中:

@ManyToMany(targetEntity= Reader.class, fetch = FetchType.EAGER,cascade = CascadeType.ALL, mappedBy = "books")
@JoinTable(name="book_reader",joinColumns=@JoinColumn(name="id_reader",referencedColumnName="id_reader"),inverseJoinColumns=@JoinColumn(name="id_book",referencedColumnName="id_book"))
public List<Reader> getReaders() {
    return readers;
}

我想在保存图书后更新新读者。但它没有用。

book.setReaders(readers);

然后

getSessionFactory().getCurrentSession().update(book);

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

在多对多中,你需要设置双向。

前者

books.setReaders(readers);

for(Reader reader:readers)
    reader.getBooks().add(book);

然后更新它将起作用。