【问题标题】:JPA CreateEntityManagerFactory() method hangsJPA CreateEntityManagerFactory() 方法挂起
【发布时间】:2011-12-15 17:03:46
【问题描述】:

我是通过以下方式使用这个方法的

EntityManagerFactory emftemp = Persistence.createEntityManagerFactory("XYZ");

而我的persistence.xml 有此单元的以下条目

<persistence-unit name="XYZ" transaction-type="RESOURCE_LOCAL">
    <provider>org.hibernate.ejb.HibernatePersistence</provider>
    <exclude-unlisted-classes>true</exclude-unlisted-classes>
    <properties>
        <property name="hibernate.show_sql" value="false"/>
        <property name="hibernate.hbm2ddl.auto" value="validate"/>
        <property name="hibernate.query.substitutions" value="true=1, false=0"/>
        <property name="hibernate.connection.driver_class" value="oracle.jdbc.driver.OracleDriver"/>
        <property name="hibernate.connection.url" value="jdbc:oracle:thin:@aesop-db.corp.nlg1.com:1521:TLCSDEV4"/>
        <property name="hibernate.connection.username" value="abcd"/>
        <property name="hibernate.connection.password" value="abcd"/>
        <property name="hibernate.dialect" value="org.hibernate.dialect.Oracle9iDialect"/>
    <property name="hibernate.connection.timeout" value="120"/>
    <property name="hibernate.connection.provider_class" value="org.hibernate.connection.C3P0ConnectionProvider" />
    <property name="hibernate.c3p0.min_size" value="2"/>
    <property name="hibernate.c3p0.max_size" value="2"/>
    <property name="hibernate.c3p0.idle_test_period" value="60"/>
    </properties>
</persistence-unit>

这是一个 Java 应用程序,我使用的是 hibernate3.jar,我使用的是 ejb3-persistence.jar 和 JDK1.5。

问题是每次我运行应用程序时,它都会挂在这个调用上。它没有抛出任何异常或错误。它只是挂在那个点上。

任何人都可以帮助确定它为什么不前进吗?

【问题讨论】:

  • 这只是发生在我身上。原来它正在创建一个索引,这花了很长时间。我通过使用 MySQL Workbench 检查活动连接及其正在运行的查询发现了这一点。
  • @TYS :我面临同样的问题。如果您有解决方案,请帮助我。提前致谢。

标签: java hibernate jpa


【解决方案1】:

两个想法:

  1. 当某些东西挂起时,通常是因为 IO/网络问题。因此,请尝试确保数据库确实处于活动状态,并且您可以从计算机连接到它。
  2. 这可能与Persistence.createEntityManagerFactory takes ages 重复

【讨论】:

  • 我可以从 Toad 连接到数据库。 Toad 是我机器上的数据库客户端。我可以使用相同的数据库 url 和用户名、密码连接到它,并且可以对其进行查询/更新等。其次,它只会挂起。即使我离开它半小时,它也不会从那一刻开始前进。关于我可以四处寻找问题的任何线索?
  • 您可以尝试使用一些格式错误的 DB URL 来查看它是否会引发任何错误,如果不是,则意味着它与网络无关……您使用的是最新的休眠模式吗?
  • 我尝试使用格式错误的 url,它仍然挂在同一个地方。我目前正在使用 hibernate3.jar 。不知道跟这个有没有关系。
  • 您可以尝试获取最新的sourceforge.net/projects/hibernate/files/hibernate3/3.6.9.Final 看看是否有帮助...
  • @oleg 感谢您的所有回复,我也下载并尝试了新的休眠 jar,但还没有运气!我遇到了 hibernate-annotations.jar 的一些问题。所以我删除了它,因为最新版本的 hibernate.jar 中捆绑了注释。但仅此而已。我还在碰壁!
【解决方案2】:

对于只定义了三个实体但数据库非常大的 Oracle 11g 数据库,我遇到了同样的问题。在persistence.xml中注释掉下面一行后,问题就解决了。

<property name="hibernate.hbm2ddl.auto" value="update"/>

【讨论】:

    猜你喜欢
    • 2012-09-04
    • 1970-01-01
    • 2012-03-17
    • 1970-01-01
    • 2016-03-02
    • 2015-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多