mappedBy не работает с Inheritance в hibernate. Любое решение? - PullRequest
0 голосов
/ 03 мая 2011

Рассмотрим следующие три класса

@Entity
@Inheritance(strategy = InheritanceType.JOINED)
@SequenceGenerator(name = "GenericIdGenerator",
sequenceName = "GENERIC_SEQ", initialValue = 1)
@Table(name = "tbl_datastores")
public abstract class DataStore implements Serializable {

    private int storeId;

    public getStoreId()
    {
        return this.storeId;
    }

    //..other code removed for brevity.
}

@Entity
@Table(name = "tbl_filedatastores")
public class FileDataStore extends DataStore {

    private Set<FieldDetails> fields;

    @OneToMany(mappedBy="datastore")
    public getFields()
    {
        return this.fields;
    }
    //..other code removed for brevity.
}

@Entity
@Table(name="tbl_fields")
@SequenceGenerator(name = "GenericIdGenerator",
sequenceName = "GENERIC_SEQ", initialValue = 1)
public class FieldDetails
{
    private int fieldId;
    private DataStore datastore;

    @Id @GeneratedValue(strategy=GenerationType.SEQUENCE, generator="GenericIdGenerator")
    @Column(name="id", nullable=false, updatable=false)
    public int getFieldId() {
        return fieldId;
    }

    @ManyToOne
    @JoinColumn (name="datastore_id", referencedColumnName="id")
    public FileDataStore getDataStore(){
        return datastore;
    }
    //..other code removed for brevity.
}

Когда я запускаю этот код, я получаю следующую ошибку ...

org.hibernate.AnnotationException: mappedBy reference an unknown target entity  property: entities.FieldDetails.datastore in entities.FileDataStore.fields

Я видел сообщений кажется, что это спящий вопрос, но я нигде не смог найти правильного решения?

Не могли бы вы предложить способ сопоставить это в спящем режиме или обойти?

Заранее спасибо!

1 Ответ

0 голосов
/ 03 мая 2011

Обратите внимание на разницу в регистре символов в именах свойств.Это должно быть либо

@OneToMany(mappedBy="dataStore") 
...
public FileDataStore getDataStore(){ ... }

, либо

@OneToMany(mappedBy="datastore") 
...
public FileDataStore getDatastore(){ ... }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...