Estoy usando Hibernate 3.5.6 como mi implementación de JPA 2.0. Estoy tratando de construir un @ElementCollection
dentro de mi entidad (muchos campos omitidos):Cómo compilar ElementCollection de tipo Embeddable?
@Entity
public class Buyer implements Serializable {
...
@ElementCollection
private List<ContactDetails> contacts;
...
}
que he hecho este trabajo con bastante facilidad cuando la colección contiene un tipo básico, pero mi ContactDetails
es una clase @Embeddable
:
@Embeddable
public class ContactDetails implements Serializable {
...
@Column(nullable = false)
private String streetOne;
....
}
cuando corro dejar que Hibernate generar el DDL, recibo errores como este:
INFO - Environment - Hibernate 3.5.6-Final
....
INFO - Version - Hibernate EntityManager 3.5.6-Final
....
INFO - SettingsFactory - RDBMS: PostgreSQL, version: 8.4.2
INFO - SettingsFactory - JDBC driver: PostgreSQL Native Driver, version: PostgreSQL 9.0 JDBC4 (build 801)
INFO - Dialect - Using dialect: org.hibernate.dialect.PostgreSQLDialect
....
ERROR - SchemaUpdate - Unsuccessful: create table Buyer_contacts (Buyer_id int8 not null, contacts_collection&&element_county varchar(255), contacts_collection&&element_email varchar(255), contacts_collection&&element_fax varchar(255), contacts_collection&&element_mainphone varchar(255) not null, contacts_collection&&element_mobile varchar(255), contacts_collection&&element_name varchar(255) not null, contacts_collection&&element_postcode varchar(255) not null, contacts_collection&&element_streetone varchar(255) not null, contacts_collection&&element_streettwo varchar(255), contacts_collection&&element_town varchar(255) not null)
ERROR - SchemaUpdate - ERROR: syntax error at or near "&&" Position: 73
¿hay una manera de persuadir a Hibernate Gen ¿Cuál es el nombre de columna válido en la tabla para la clase de colección? Idealmente, una forma que no viole el principio No repetir uno mismo al especificar cada nombre de columna individual.
Eso era exactamente, gracias. –
De acuerdo con el rastreador de errores esto está arreglado en Hibernate 5. –
Me llevó varias horas encontrarlo. El mensaje de error estaba bastante bien oculto registros ddl completos. ¡Gracias! – Mateusz