Hibernate 5代码配置时实体类未映射,导致插入数据出现嵌入式主键属性找不到报错的问题求助
Hibernate 5代码配置时实体类未映射,导致插入数据出现嵌入式主键属性找不到报错的问题求助
我目前在用Hibernate 5做项目,打算完全用代码来配置它,现在数据库连接已经搞定了,但实体类好像没被正确映射上——现在连数据都插不进数据库,还一直报嵌入式主键里的某个属性找不到的错误,有没有朋友能帮我排查下问题?
我把自己的配置代码贴在下面了:
public void initialize() { configuration = new Configuration(); setupPostgresDbConnectionProperties(); while (!initilizeSessionFactory()) { System.err.println("retrying to initilize session factory"); } } public void setupPostgresDbConnectionProperties() { configuration.setProperty("hibernate.dialect", "org.hibernate.dialect.PostgreSQLDialect"); configuration.setProperty("hibernate.connection.driver_class", "org.postgresql.Driver"); String dbUrl = String.format("jdbc:postgresql://localhost:%d/%s", appConfig.getDb_port(), appConfig.getDb_schema_name()); configuration.setProperty("hibernate.connection.url", dbUrl); configuration.setProperty("hibernate.connection.username", appConfig.getDb_user_name()); configuration.setProperty("hibernate.connection.password", appConfig.getDb_pass()); configuration.setProperty("hibernate.hbm2ddl.auto", "update"); } private void loadEntitiesClasses(String packageName) { if (packageName == null || packageName.length() == 0) { packageName = "com.jhonny.SharePointReports"; Set<Class<?>> entityClasses = EntityScanner.getEntityClasses(packageName); for (Class<?> entityClass : entityClasses) { configuration.addAnnotatedClass(entityClass); System.out.println("Registering Entity: " + entityClass.getSimpleName()); } } } private boolean initilizeSessionFactory() { try { ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder() .applySettings(configuration.getProperties()) .build(); Set<Class<?>> entityClasses = EntityScanner.getEntityClasses("com.jhonny.SharePointReports"); MetadataSources metadataSources = new MetadataSources(serviceRegistry); for (Class<?> entityClass : entityClasses) { metadataSources.addAnnotatedClass(entityClass); } sessionFactory = metadataSources.buildMetadata().buildSessionFactory(); System.out.println("Session Factory is initilized successFully"); return true; } catch (Exception e) { System.err.println("error in Session Factory creation.\n error message = " + e.getMessage()); e.printStackTrace(); } return false; }
备注:内容来源于stack exchange,提问作者Dood
相关产品推荐
相关产品推荐

