Andaikan objek Objek mempunyai beberapa parameter, dan nama serta nombor parameter tidak pasti Saya ingin tahu bagaimana jadual data harus direka dalam kes ini agar lebih sesuai untuk Hibernate beroperasi
Saya telah menyelesaikan a penyelesaian sebelum ini (Saya ingin mendengar Tuan merungut):
Sebanyak dua jadual digunakan: satu ialah jadual tab dan satu lagi ialah jadual tabmeta, dan tid dalam jadual tabmeta dirujuk kepada id tab untuk mencipta kunci asing (sebenarnya, saya tidak mahu mencipta hubungan ini dalam pangkalan data, saya mahu mencipta kunci asing dalam program Atau lapisan DAO melaksanakan hubungan sedemikian).
Buat kelas entiti yang sepadan ( dijana terus melalui jadual menggunakan kejuruteraan terbalik InteliJ IDEA):
//tab的实体类 @Entity @Table(name = "tab", schema = "springfkhibernate", catalog = "") public class TabEntity { private int id; private String name; private Map
Parameter apabila menjana:
Tetapi ini akan menghasilkan dua kelas entiti, satu ialah TabEntity dan satu lagi ialah TabValueEntity Kecelaruan obsesif-kompulsif pada asalnya, kedua-dua jadual ini menggambarkan masalah satu entiti perhubungan satu-ke-banyak antara dua objek Sekarang saya ingin bertanya sama ada boleh menyediakan meta pembolehubah jenis (Hash) dalam TabEntity khusus untuk menyimpan parameter yang tidak pasti ini, supaya Terdapat hanya satu kelas entiti dalam kes ini, bagaimanakah data harus disimpan kembali ke pangkalan data
Jika anda ingin mengakses salah satu parameter pembolehubah dalam kelas entiti yang dijana dengan cara ini, anda memerlukan:TabDao.getEntity(...) .getTabmetasById().get('somekey').getMetaValue()
TabDao.getEntity(...).getTabmetasById().get('somekey').getMetaValue()
来实现,但是如果把这两个表的数据理解成一个实体的数据的话就应该这么实现:TabDao.getEntity(...).getMeta('somekey')
, tetapi jika data kedua-dua jadual ini difahami sebagai data satu entiti, ia sepatutnya seperti ini Pelaksanaan:TabDao .getEntity(...).getMeta('somekey')
Saya tidak tahu sama ada tuan mempunyai cadangan dalam hal ini....
Saya juga ingin bertanya tentang hubungan tuan dengan IDEA Apa impak adakah setiap parameter dalam kotak dialog yang dibuat?
又到了自问自答的环节....
如果说实现我上面说的那种方式,还要实现LazyLoad,IDEA自动生成基本上是没戏的....那个生成的功能是不包括建立非对象之间的关系的,如果需要建立,只能自己去改映射文件.先把那个tab表的实体类生成出来,然后在tab的实体类中添加一个Map类型的对象(具体映射的类型看另一个表的字段数据类型),生成对应的geter和seter函数.
然后就是map文件: