2014-09-16 3 views
0

내가이 개 준비 테이블이 있습니다 Hibernate는 임베드 목록

Table "One" 
id numeric (PK); 
name varchar(100); 

Table "Two" 
property1 varchar(100); 
one_id long; 

내가 그것을 테이블에 두 개의 클래스를 매핑하려면 :

class One 
{ 
long id; 
String name; 
} 

Two 
{ 
    One parent; 
    String property1; 
} 

내가 하나 개의 클래스로 List<Two> properties를 추가하는 경우를, 어떤 주석 난에 추가해야합니다 ? 클래스 '2'마크는 삽입 가능으로 표시됩니다. 테이블 수정은 권장되지 않습니다.

+0

표 1의 전체 표 2를 추가하려고합니다. –

+0

'Class 'Two'마크를 Embeddable로 명확하게 설명하십시오. - 의미? – Chaitanya

+0

최대 절전 모드를 통해 기본 키가없는 엔티티를 저장하고 싶습니다. 이 구조에서 (가능한 경우) - 콜렉션 "Two"의 모든 요소와 함께 "One"을 저장하고 싶습니다. – mgurov

답변

1

수업 2는 전혀 필요하지 않습니다. 1 급에서 필요한 것은

@ElementCollection 
@Column(name = "property1") 
@JoinColumn(name = "one_id") 
private Set<String> properties; 
+0

클래스 Two - 프로덕션 버전의 작은 예입니다. 실제 클래스는 하나 이상의 필드를 포함합니다 – mgurov

+0

그리고 나서'@ Embeddable'으로 주석을 달고'Set ' 대신'Set '를 사용하고'@ Column' 주석을 제거하십시오. 두 클래스는 'One'유형의 필드를 가질 수 없습니다. –

+0

두 개의 (Two_id, property1) 값 (?,?)에 삽입하십시오. – mgurov