考虑以下三个类
@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
我看到一些posts似乎暗示这是一个休眠问题,但我无法在任何地方找到合适的解决方案?
您能否建议一种在休眠或解决方法中映射此方法的方法?
提前谢谢!
答案 0 :(得分:0)
注意属性名称中字符大小写的不同。它应该是
@OneToMany(mappedBy="dataStore")
...
public FileDataStore getDataStore(){ ... }
或
@OneToMany(mappedBy="datastore")
...
public FileDataStore getDatastore(){ ... }