que tiene una base de datos con la siguiente estructura:entidad JPA sin Identificación
CREATE TABLE entity (
id SERIAL,
name VARCHAR(255),
PRIMARY KEY (id)
);
CREATE TABLE entity_property (
entity_id SERIAL,
name VARCHAR(255),
value TEXT
);
Cuando trato de crear una clase 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;
}
}
me sale el siguiente excepción:
org.hibernate.AnnotationException: No identifier specified for entity: package.EntityProperty
Sé que las entidades JPA deben tener una clave principal, pero no puedo cambiar el esquema de la base de datos debido a razones que están más allá de mi cont Rol ¿Es posible crear entidades JPA (Hibernate) que funcionen con un esquema de base de datos como este?
Gracias. Pero, ¿cómo puedo acceder directamente a la propiedad de "nombre" de la entidad en este caso? Mi consulta JP-QL funciona bien solo si se accede a "nombre" a través de "entity.id.name", pero creo que no está bien. – mikhail
@mikhail: Si no le gusta el enfoque con '@ EmbeddedId', puede intentar un enfoque alternativo con' @ IdClass': http://docs.jboss.org/hibernate/stable/annotations/reference/en/html_single/#d0e1112 – axtavt
¿Debería la anotación para 'EntityPropertyPK' ser' @ Embeddedable' en lugar de '@ Embedded'? – HDoan