это образец моих двух сущностей:
@Entity
public class Post implements Serializable {
@OneToMany(mappedBy = "post", fetch = javax.persistence.FetchType.EAGER)
@OrderBy("revision DESC")
public List<PostRevision> revisions;
@Entity(name="post_revision")
public class PostRevision implements Serializable {
@ManyToOne
public Post post;
private Integer revision;
@PrePersist
private void prePersist() {
List<PostRevision> list = post.revisions;
if(list.size() >= 1)
revision = list.get(list.size() - 1).revision + 1;
else
revision = 1;
}
Итак, есть «пост», и он может иметь несколько ревизий.Во время сохранения ревизии сущность просматривает список существующих ревизий и находит следующий номер ревизии.Проблема в том, что Post.revisions имеет значение NULL, но я думаю, что оно должно быть заполнено автоматически.Я предполагаю, что в моем исходном коде есть какая-то проблема, но я не знаю где.Вот мой код "персистентности":
Post post = new Post();
PostRevision revision = new PostRevision();
revision.post = post;
em.persist(post);
em.persist(revision);
em.flush();
Я думаю, что после сохранения "поста" он становится "управляемым", и теперь все отношения должны быть заполнены.
Спасибо за помощь!
(Примечание: публичные атрибуты только для демонстрации)