我正在使用内部库来生成会话工厂。这意味着我没有Hibernate配置的xml
文件;这样的信息是从部署了我的应用程序的容器中的配置文件中读取的。我也没有在我的代码中的任何地方创建SessionFactory
的新实例;我添加了一个为我这样做的包。
但是,当我尝试使用IntelliJ生成实体时,我收到错误消息:
JPA annotation mappings require at least one Session Factory
考虑到我没有配置文件,而且我自己没有构建SessionFactory
,有没有办法生成注释?
答案 0 :(得分:7)
您可以使用数据库连接生成实体。
答案 1 :(得分:1)
我正在使用Spring数据JPA并遇到了类似的问题。为了解决这个问题,我创建了一个临时类,如下所示,让IntelliJ创建一个hibernate.cfg.xml(点击“添加到会话工厂”旁边的绿色+),这两个都是在我运行映射后删除的。有点令人讨厌的解决方法,但比手动映射所有内容要快得多。希望这会有所帮助。
@Component
public class IMADEANENTITYMANAGEROK/*!?!?!*/ {
@Autowired
HibernateJpaSessionFactoryBean hibernateJpaSessionFactoryBean;
SessionFactory sessionFactory;
public IMADEANENTITYMANAGEROK()
{
sessionFactory = hibernateJpaSessionFactoryBean.getObject();
}
}
答案 2 :(得分:0)
对于Spring Data JPA,在/ resources下添加hibernate.cfg.xml。
例如对于PostgreSQL:
<hibernate-configuration>
<session-factory>
<property name="connection.url">jdbc:postgresql://localhost:5432/db_name</property>
<property name="connection.driver_class">org.postgresql.Driver</property>
<property name="connection.password"></property>
<property name="dialect">org.hibernate.dialect.PostgreSQLDialect</property>
<property name="hbm2ddl.auto">update</property>
<property name="show_sql">true</property>
<property name="format_sql">true</property>
</session-factory>
</hibernate-configuration>
设置您自己的数据库url,用户名和密码。单击“添加到会话工厂”右侧的浏览,以指向上方的hibernate.cfg.xml。然后将生成POJO,而不会出现错误“ JPA批注映射至少需要一个Session Factory”。
生成后,将hibernate.cfg.xml文件删除或重命名为hibernate.cfg.xml.bak,以防再次使用。