Me pregunto si es posible usar anotaciones para conservar el attributes
mapa en la siguiente clase usando JPA2
public class Example {
long id;
// ....
Map<String, String> attributes = new HashMap<String, String>();
// ....
}
Como ya tenemos una base de datos de producción preexistente, lo ideal sería que los valores de attributes
pudieran mapear a la siguiente tabla existente:
create table example_attributes {
example_id bigint,
name varchar(100),
value varchar(100));
Map<String, SomeOtherClass>
example_attributes
debe tener una clave compuesta(example_id, name)
, que es lo que hbm2ddl generará a partir de lo anterior.Specified key was too long; max key length is 767 bytes
esto. La clave principal que intenta crear es una combinación de varchar (255) y @JoinColumn, que excede el tamaño de columna predeterminado. Es necesario que sea cambiar su base de datos o modificar su @MapKeyColumn para proporcionar una longitud:@MapKeyColumn(name="name", length=100)
Este es un ejemplo sobre cómo configurar un mapa con control sobre los nombres de columnas y tablas y la longitud del campo.
fuente