Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Hibernate 5:- org.hibernate.MappingException:Entitas tidak dikenal

Saya telah memperbaiki masalah yang sama dengan Hibernate 5. Ada masalah dalam kode ini

Configuration configuration = new Configuration();
configuration.configure();

ServiceRegistry sr = new StandardServiceRegistryBuilder().applySettings(
    configuration.getProperties()).build();

SessionFactory sf = configuration.buildSessionFactory(sr);

Kode ini berfungsi dengan baik untuk Hibernate 4.3.5, tetapi kode yang sama memiliki masalah yang sama untuk Hibernate 5.

Saat Anda melakukan configuration.buildSessionFactory(sr) , menggunakan Hibernate 5, Configuration kehilangan semua informasi tentang pemetaan yang didapat melalui panggilan configuration.configure() .

Solusi

Untuk memperbaiki masalah ini, jika Anda menggunakan file konfigurasi standar hibernate.cfg.xml dan hibernate.properties , Anda dapat membuat pabrik sesi dengan cara ini (tanpa ServiceRegistry )

SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();

Memuat properti

Jika Anda memiliki properti dalam file selain hibernate.properties , Anda dapat membangun pabrik sesi menggunakan StandardServiceRegistryBuilder (bagaimanapun, jika Anda memiliki hibernate.properties dan file lainnya, itu akan dimuat keduanya)

Untuk memuat properti sebagai sumber daya

ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().
    configure().loadProperties("hibernate-h2.properties").build();
SessionFactory sf = new Configuration().buildSessionFactory(serviceRegistry);  

Anda harus memiliki hibernate-h2.properties di jalur kelas (akar folder sumber, folder sumber daya). Anda juga dapat menentukan jalur dari folder sumber akar/com/github/xxx/model/hibernate-h2.properties .

Untuk memuat properti dari jalur di sistem file

File propertiesPath = new File("some_path");
ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().
    configure().loadProperties(propertiesPath).build();
SessionFactory sf = new Configuration().buildSessionFactory(serviceRegistry);

Anda dapat menemukan contoh aplikasi konsol menggunakan pendekatan ini di sini fluent-hibernate-mysql . Ini menggunakan kelas utilitas untuk membangun pabrik sesi dari library fluent-hibernate .

Tutorial Hibernate 5 salah

Ada contoh yang salah dalam tutorial Hibernate 5 1.1.6. Startup dan pembantu . Ini menggunakan kode ini

 return new Configuration().configure().buildSessionFactory(
                new StandardServiceRegistryBuilder().build() );

Itu tidak melakukan konfigurasi yang tepat.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara mengubah seluruh characterset dan collation database MySQL ke UTF-8?

  2. Prosedur tersimpan MySQL vs fungsi, mana yang akan saya gunakan kapan?

  3. Bagaimana cara memasukkan file BLOB dan CLOB di MySQL?

  4. Pymysql Cursor.fetchall() / Fetchone() Mengembalikan Tidak Ada

  5. Format Angka sebagai Persentase di MySQL