2012-03-09 1 views
3

에 null 값을 설정하고 나는 클래스에게 내가 myClassField2에서 'filed3은'FIELD3 'hasn 렸기 때문에,'널 '이 될 것을 원하는AttributeOverride 내가 클래스</p> <pre><code>@Embeddable public class MyClass implements Serializable { private String field1; private String field2; private String field3; // getters, setters } </code></pre> <p>가 매핑되지 않은 필드

public class MappedClass implements Serializable 
{ 
    @Embedded 
    @AttributeOverrides(
     { 
     @AttributeOverride(name = "field1", column = @Column(name = "column1")), 
     @AttributeOverride(name = "field2", column = @Column(name = "column2")), 
     @AttributeOverride(name = "field3", column = @Column(name = "column3")) 
     }) 
    private MyClass myClassField1; 

    @Embedded 
    @AttributeOverrides(
     { 
     @AttributeOverride(name = "field1", column = @Column(name = "column1")), 
     @AttributeOverride(name = "field2", column = @Column(name = "column2")), 
     }) 
    private MyClass myClassField2; 

// setters, getters 

} 

를 매핑 한 DB 매핑. 어떻게해야합니까? 'field3'열의 'field3'에 대한 JPA 검색 값

최대 절전 모드에서 모두 정상적으로 통과되었습니다!

<component name="myClassField1" class="MappedClass"> 
      <property name="field1" type="string" column="column1" /> 
      <property name="field2" type="string" column="column2" /> 
      <property name="field3" type="string" column="column3" /> 
    <component/> 

    <component name="myClassField2" class="MappedClass"> 
      <property name="field1" type="string" column="column1" /> 
      <property name="field2" type="string" column="column2" /> 
    <component/> 

는하지만 어떻게 당신이 원하는 것은 불가능하다 JPA

답변

4

이 필요합니다. 필드가 계속되거나 일시적입니다. 때로는 하나가 될 수도 있고 때로는 다른 것도 될 수 없습니다.

두 필드만으로 MyClass1을 정의하고 MyClass1을 확장하고 세 번째 필드를 추가하는 MyClass2를 정의하십시오. 첫 번째 것은 myClassField2이고 두 번째 것은 myClassField1입니다.

예에서 column1과 column2를 두 번 매핑 했으므로 올바르지 않습니다.

관련 문제