OneToMany? ManyToOne?

Player를 persist하면 내부에 갖고 있는 List의 엔티티빈도 자동으로 저장할때,

List의 엔티티빈의 Primary Key 가 자동으로설정되게하는 방법때문에 고생했다.

위 OneToMany에 cascade 속성을 붙이면 안된다.
또한 동적으로 Primary Key를 전달하려면 JoinColumn을 쓰면 안되고 PrimaryKeyJoinColumn 를 써야 한다.
마지막으로 리스트의 엔티티빈(Pitcher)에 setPlayer 로 설정해주면 Player.indexId 는 auto_increment 이지만
Pitcher에 자동으로 playerId 가 설정된다!

이부분이 잘 설정되지 않으면

Caused by: org.hibernate.PersistentObjectException: detached entity passed to persist: com.h3soft.entity.Player

에러가 발생한다.

This entry was posted in Java, JBoss. Bookmark the permalink.