Saya ingin tahu apakah mungkin menggunakan anotasi untuk mempertahankan attributes
peta di kelas berikut menggunakan JPA2
public class Example {
long id;
// ....
Map<String, String> attributes = new HashMap<String, String>();
// ....
}
Karena kita sudah memiliki database produksi yang sudah ada sebelumnya, idealnya nilai attributes
dapat dipetakan ke tabel yang ada berikut ini:
create table example_attributes {
example_id bigint,
name varchar(100),
value varchar(100));
Map<String, SomeOtherClass>
example_attributes
harus memiliki kunci komposit(example_id, name)
- yang akan dihasilkan hbm2ddl dari atas.Specified key was too long; max key length is 767 bytes
melakukan ini. Kunci utama yang dicoba dibuat adalah kombinasi dari varchar (255) dan @JoinColumn, yang melebihi ukuran kolom default. Anda perlu mengubah database Anda atau memodifikasi @MapKeyColumn Anda untuk memberikan panjang:@MapKeyColumn(name="name", length=100)
Ini adalah contoh bagaimana menyiapkan peta dengan kontrol atas kolom dan nama tabel dan panjang bidang.
sumber