2011-08-30 4 views
1

I가 다음 도메인 클래스 :OneToMany 매핑 :

@Entity 
@Table(name="ADDRESSBOOK_FIELD") 
@Inheritance(strategy=InheritanceType.JOINED) 
public abstract class AbstractAddressbookField { 
    private int dbID; 
    private Addressbook addressbook; 

    public AbstractAddressbookField() { 
    } 

    @Id 
    @GeneratedValue(strategy=GenerationType.AUTO) 
    public int getId() { 
     return dbID; 
    } 

    public void setId(int id) { 
     this.dbID = id; 
    } 

    @ManyToOne 
    @JoinColumn(nullable=false) 
    public Addressbook getAddressbook() { 
     return addressbook; 
    } 

    public void setAddressbook(Addressbook addressbook) { 
     this.addressbook = addressbook; 
    } 

}

.

@Entity 
@Table(name="DATE_FIELD") 
public class DateField extends AbstractAddressbookField { 
    public DateField() { 

    } 
} 

.

@Entity 
@Table(name="NEW_ADDRESSBOOK") 
public class Addressbook { 
    private int dbID; 
    private Set<DateField> dateFields = new HashSet<DateField>(); 

    @Id 
    @GeneratedValue(strategy=GenerationType.AUTO) 
    public int getDbID() { 
     return dbID; 
    } 

    public void setDbID(int dbID) { 
     this.dbID = dbID; 
    } 

    @OneToMany(mappedBy="Addressbook", cascade={CascadeType.ALL}) 
    public Set<DateField> getDateFields() { 
     return dateFields; 
    } 

    public void setDateFields(Set<DateField> dateFields) { 
     this.dateFields = dateFields; 
    } 
} 

내 패키지는 모든 매핑을 데리러 제대로 스캔되고 있지만, 나는 다음과 같은 예외가 점점 오전 : 클래스가 명확하게 매핑 될 때

Caused by: org.hibernate.AnnotationException: Use of @OneToMany or @ManyToMany targeting an unmapped class: fields.DateField 

내가이는 이유에 확실하지 오전 에.

답변

1

엔티티가 'persistence.xml'파일에 매핑되어 있지 않은 것처럼 보입니다. 대신

@OneToMany(mappedBy="Addressbook", cascade={CascadeType.ALL}) 
public Set<DateField> getDateFields() { 
    return dateFields; 
} 

사용 mappedBy="addressbook :

+0

내 도메인 클래스를 포함하는 패키지가 올바르게 지정되어 있으므로 변경해야하는 다른 것이 있는지 궁금합니다. – mogronalol

1

난 당신 문제가있는 대문자 생각합니다.