我有一个具有以下结构的数据库:
CREATE TABLE entity (
id SERIAL,
name VARCHAR(255),
PRIMARY KEY (id)
);
CREATE TABLE entity_property (
entity_id SERIAL,
name VARCHAR(255),
value TEXT
);
当我尝试创建 EntityProperty 类时
@Entity
@Table(name="entity_property")
public class EntityProperty {
private String name;
private String value;
@Column(name="name")
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Column(name="value", nullable=true, length=255)
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
}
我得到以下异常:
org.hibernate.AnnotationException: No identifier specified for entity: package.EntityProperty
我知道 JPA 实体必须有一个主键,但由于我无法控制的原因,我无法更改数据库模式。是否可以创建像这样使用数据库模式的 JPA (Hibernate) 实体?
原文由 Michael 发布,翻译遵循 CC BY-SA 4.0 许可协议
I guess your
entity_property
has a composite key(entity_id, name)
whereentity_id
is a foreign key toentity
.如果是这样,您可以按如下方式映射它: