Ich frage mich, ob es möglich ist, mithilfe von Anmerkungen die attributes
Karte in der folgenden Klasse mit JPA2 beizubehalten
public class Example {
long id;
// ....
Map<String, String> attributes = new HashMap<String, String>();
// ....
}
Da wir bereits eine bereits vorhandene Produktionsdatenbank haben, können die Werte von idealerweise attributes
der folgenden vorhandenen Tabelle zugeordnet werden:
create table example_attributes {
example_id bigint,
name varchar(100),
value varchar(100));
Map<String, SomeOtherClass>
example_attributes
es einen zusammengesetzten Schlüssel geben sollte(example_id, name)
- was hbm2ddl daraus generiert.Specified key was too long; max key length is 767 bytes
gestoßen. Der Primärschlüssel, den es zu erstellen versucht, ist eine Kombination aus varchar (255) und @JoinColumn, die die Standardspaltengröße überschreitet. Sie müssen entweder Ihre Datenbank ändern oder Ihre @ MapKeyColumn ändern, um eine Länge bereitzustellen:@MapKeyColumn(name="name", length=100)
Dies ist ein Beispiel zum Einrichten einer Karte mit Kontrolle über Spalten- und Tabellennamen und Feldlänge.
quelle