2017-06-29 177 views
2

我正在使用我们的内部库来生成会话工厂。这意味着我没有带有Hibernate配置的xml文件;像这样的信息是从我的应用程序部署在容器中的配置文件读取的。我也不会在我的代码中的任何位置创建SessionFactory的新实例;我添加了一个可以帮助我的软件包。如何在没有会话工厂的情况下使用IntelliJ生成实体?

然而,当我尝试生成的IntelliJ实体,我得到一个错误说:

JPA annotation mappings require at least one Session Factory

考虑到我没有一个配置文件,我不构建SessionFactory自己,有没有办法生成注释?

回答

4

您可以使用数据库连接生成实体。

  1. 转到查看 - >工具Windows的>数据库点击+添加新的数据源。
  2. 转到 “项目结构”(ALT + CTRL + + 小号
  3. 在 “项目设置” 中选择 “模块”
  4. +并添加JPA /休眠方面在你的模块。
  5. 前往视图 - >工具窗口 - >持久性,RB-> Genrate持久映射 - >按数据库模式。并选择生成的数据源和包。
+2

这里重要的一步是添加'JPA'模块!之后,不再需要'SessionFactory'设置。 – membersound

1

我正在使用弹簧数据JPA,并有类似的问题。为了解决这个问题,我创建了一个如下所示的临时类,让IntelliJ创建一个hibernate.cfg.xml(点击“添加到会话工厂”旁边的绿色+),这两个都是我运行映射后删除的。有点烦人的解决方法,但比手动映射所有东西快得多。希望这可以帮助。

@Component 
public class IMADEANENTITYMANAGEROK/*!?!?!*/ { 
    @Autowired 
    HibernateJpaSessionFactoryBean hibernateJpaSessionFactoryBean; 
    SessionFactory sessionFactory; 
    public IMADEANENTITYMANAGEROK() 
    { 
     sessionFactory = hibernateJpaSessionFactoryBean.getObject(); 
    } 
} 
相关问题