티스토리 뷰

Study/JPA

JPA 관계 설정

dev ms 2019. 4. 10. 23:32
반응형

User.java

@Entity
@Data
public class User implements Serializable {
	
	private static final long serialVersionUID = 5641286815646499270L;

	@Id
	@Size(max = 50)
	private String email;	// 회원아이디
	
	@Size(max = 50)
	private String name;	// 이름
	
	@Enumerated(EnumType.STRING)
	private UseStatus useStatus;	// 사용여부
	
	@OneToMany
	private List<Site> sites;		// 검수 사이트 목록
	
	private String photo;		// 프로필 사진
	
	private String facebookId;	// 페이스북 아이디

}

UserAuthority.java

@Entity
@Data
public class UserAuthority implements Serializable {

	private static final long serialVersionUID = -6002054325813950202L;
	
	@EmbeddedId AuthorityId authorityId;
	
}

@Embeddable
class AuthorityId implements Serializable {
	
	private static final long serialVersionUID = -5370437276676545579L;
	
	@ManyToOne
	@JoinColumn(name = "email")
	User user;
	
	Authority authority;
}

 

Join Column으로 관계를 맺으면, Table에는 해당 user의 id 필드만 추가되어 관리된다.

Join Column을 설정 안하게되면, 임의적으로 id관련 컬럼이 생성된다.

@JoinColumn을 삭제하게되면

 

 

반응형

'Study > JPA' 카테고리의 다른 글

jpa typedQuery 예제  (0) 2019.04.10
mysql to jpa (java column mapping)  (0) 2019.04.10
JPA 요약 PPT  (0) 2019.04.10
jpa entity 상속  (0) 2019.04.10
@OneToMany , @ManyToOne fetch 관련  (0) 2019.04.10