Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Spring在Intellij中设置JPA控制台_Spring_Jpa_Intellij Idea - Fatal编程技术网

使用Spring在Intellij中设置JPA控制台

使用Spring在Intellij中设置JPA控制台,spring,jpa,intellij-idea,Spring,Jpa,Intellij Idea,我正在尝试让JPA控制台在Intellij中工作。我已经将JPA添加到facets下的项目中。但是,IDE要求使用persistence.xml。我使用的是带注释的Spring,没有任何直接映射文件。以前有人配置过这个,能帮我吗?谢谢 进一步资料: 没有添加JavaEE的东西-我不需要这个。 文件->项目结构-在模块下:将JPA添加到单个模块。不要添加persistence.xml或orm.xml 在facets下:添加JPA。将XML配置留空。将JPA提供程序保留为空 查看->工具窗口->持久

我正在尝试让JPA控制台在Intellij中工作。我已经将JPA添加到facets下的项目中。但是,IDE要求使用persistence.xml。我使用的是带注释的Spring,没有任何直接映射文件。以前有人配置过这个,能帮我吗?谢谢

进一步资料:

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

在facets下:添加JPA。将XML配置留空。将JPA提供程序保留为空

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

您将看到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}

请注意两个“TTs-”PostgreSQL9T

进一步资料:

维尔德。如果我将方言移动到实际的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)

${hibernate.hbm2ddl.auto}
org.hibernate.dialogue.postgresql9dialogue
[2017-01-04 13:03:46]java.lang.IllegalStateException:事务已处于活动状态
位于org.hibernate.engine.transaction.internal.TransactionImpl.begin(TransactionImpl.java:52)
在com.intellij.jpa.remote.impl.RemoteQueryImpl$1.getResultList(RemoteQueryImpl.java:92)上
位于com.intellij.jpa.remote.impl.QueryResultImpl.ensureInitialized(QueryResultImpl.java:113)
在com.intellij.jpa.remote.impl.QueryResultImpl.getColumnInfos上(QueryResultImpl.java:30)
在com.intellij.jpa.remote.impl.RemoteQueryResultImpl.getColumnInfos(RemoteQueryResultImpl.java:79)
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处

我在没有
persistence.xml的情况下也能工作,对我来说,它也能工作。您是否为项目分配了数据源(在IntelliJ中)?嗨,Jim。是 啊我添加了一个数据源,可以在其中运行SQL查询。但我似乎无法打开JPA QL窗口,我在“项目设置”下添加了JPA。它只为我提供了一个指定persistence.xml或orm.xml的机会,我不使用它们。谢谢你使用社区版还是Uktimate?你说的JPA控制台是什么意思?我有一个名为“Java企业”的工具窗口,它显示持久性=>moduleName=>Entities。为此,我只需要在具有实体的模块上安装一个JPA方面——我没有persistence.xml,EntityManagerFactory是使用Spring配置的,但是工具窗口即使没有Spring方面也可以工作。JPA控制台是测试JPA QL查询的地方。Klaus所说的部分易于设置和工作,只需添加JPA方面似乎就可以了。但是JPA控制台是完全不同的,到目前为止,我看到的唯一解决方案是构造一个不必要的伪persistence.xml来安抚IntelliJ