使用Spring在Intellij中设置JPA Console

时间:2017-01-03 14:36:10

标签: spring jpa intellij-idea

我正在尝试让JPA控制台在Intellij中运行。我在facets下添加了JPA到项目中。但是,IDE要求使用persistence.xml。我正在使用Annotated Spring并且没有任何直接映射文件。以前有人配置过这个,可以帮帮我吗?感谢

更多信息:

不添加JavaEE东西 - 我不需要这个。 文件 - >项目结构 - 在模块下:将JPA添加到单个模块。不要添加persistence.xml或orm.xml

在facets下:添加JPA。将XML配置留空。将JPA Provider留空

查看 - >工具窗口 - >持久性

您将在SpringContext.xml下看到模块名称和EntityManager。在我的系统上,我在SpringContext.xml中引用了这些属性

# jdbc.X
jdbc.driverClassName=org.postgresql.Driver
jdbc.url=jdbc:postgresql:///someThing
jdbc.user=postgres
jdbc.pass=postgres

# hibernate.X
hibernate.dialect=org.hibernate.dialect.PostgreSQL9Dialect
hibernate.show_sql=false
hibernate.hbm2ddl.auto=create

然后我在我的持久性窗口中选择(我现在可以看到所有实体) - 单击控制台按钮。选择JPA控制台。这将得到我在这里概述的错误{是的,我正在使用Postgres}

https://intellij-support.jetbrains.com/hc/en-us/community/posts/206186929-JPA-Console-without-persistence-xml

注意两个“TTs-”PostgreSQL9Dialectt

进一步的信息:

奇怪。如果我将方言移动到实际的xml配置

 <property name="jpaProperties">
        <props>
            <prop key="hibernate.hbm2ddl.auto">${hibernate.hbm2ddl.auto}</prop>
            <prop key="hibernate.dialect">org.hibernate.dialect.PostgreSQL9Dialect</prop>
           <!--<prop key="hibernate.enable_lazy_load_no_trans">true</prop>-->
        </props>
    </property>

[2017-01-04 13:03:46] java.lang.IllegalStateException: Transaction already active
at org.hibernate.engine.transaction.internal.TransactionImpl.begin(TransactionImpl.java:52)
at com.intellij.jpa.remote.impl.RemoteQueryImpl$1.getResultList(RemoteQueryImpl.java:92)
at com.intellij.jpa.remote.impl.QueryResultImpl.ensureInitialized(QueryResultImpl.java:113)
at com.intellij.jpa.remote.impl.QueryResultImpl.getColumnInfos(QueryResultImpl.java:30)
at com.intellij.jpa.remote.impl.RemoteQueryResultImpl.getColumnInfos(RemoteQueryResultImpl.java:79)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

0 个答案:

没有答案