Consider the following three classes
@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.
}
When I run this code I get the following error…
org.hibernate.AnnotationException: mappedBy reference an unknown target entity property: entities.FieldDetails.datastore in entities.FileDataStore.fields
I have seen some posts that seem to suggest it is a hibernate issue but I could not get a proper solution anywhere?
Can you please suggest a way to map this in hibernate or a workaround?
Thank you in advance!
Note the difference in character case in property names. It should be either
or