이 내 두 엔티티의 샘플입니다JPA 엔티티 관계가 .persist 후 채워지지 않습니다()
@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();
내가 "게시물"지속 한 후, 그것은 "관리"가되어 모든 관계가 지금부터 채워해야한다고 생각합니다.
도움 주셔서 감사합니다.
: 데이터베이스에서 엔티티를로드 할 때
답변 해 주셔서 감사합니다. 그러나 필자의 경우 EclipseLink에서 데이터베이스에서 엔티티를로드하려면 어떻게해야합니까? EntityManager.find()를 사용합니까? 나도 그걸 시도했지만 어느 것도 작동하지 않는다. (리비전은 여전히 null이다.) – Tomik