0

Netbeans がhibernate.reveng.xmlエラーで作成に失敗する

選択した Hibernate 構成ファイルとのデータベース接続を確立できません。hibernate.cfg.xml でデータベース接続の詳細を確認してください

hibernate.cfg.xmlの見た目はこんな感じ

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
  <session-factory>
  <property name="hibernate.connection.driver_class">org.apache.derby.jdbc.ClientDriver</property>
      <property name="hibernate.dialect">org.hibernate.dialect.DerbyDialect</property>

    <property name="hibernate.connection.url">jdbc:derby://localhost:1527/User</property>
  </session-factory>
</hibernate-configuration>

何が問題ですか?Java DB (Derby) データベースを使用しています。MySQL を使用しているとき以外は、この問題はありません

4

2 に答える 2

0

最も可能性の高い原因は、ボックスの Derby が組み込みモードで実行されることが想定されており、ポート接続を許可しないことです。ネットワークモードで実行する必要があります。

ここに情報があります: http://db.apache.org/derby/papers/DerbyTut/index.html

これにより、ネットワークモードをセットアップするか、組み込みに移行するための情報が提供されます(最初にネットワークにアクセスして、それが問題であるかどうかをテストすることをお勧めします)、必要に応じて切り替えます)。

于 2012-10-06T13:52:38.883 に答える
0

私は別の方向に行きます。JPAを使用し、JPAベンダーとして休止状態を設定します。少し違うように見えますが、Spring は JPA を完全にサポートしています (トランザクションマネージャーとすべてを含む)。次のようになります:
hibernate.cfg.xml の代わりに、"persistence.xml" と呼ばれる xml があり (resources/META-INF 内に存在します)、次のようになります。

<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
    version="2.0">
    <persistence-unit name="myPersistanceUnit">

        <class>com.company.entities.Entity1</class>
        <class>com.company.entities.Entity2</class>
        <class>com.company.entities.Entity3</class>

        <properties>
            <property name="hibernate.dialect" value="org.hibernate.dialect.DerbyDialect" />
            <property name="hibernate.show_sql" value="true" />
        </properties>

    </persistence-unit>
</persistence>

ApplicationContext.xml には次のようなものがあります。

<tx:annotation-driven />

    <bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager"
        p:entityManagerFactory-ref="entityManagerFactory" />

<!-- The data source is configured in the application server but spring also supports a configured bean -->
    <bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
        <property name="jndiName" value="jdbc/MyDataSource" />
    </bean>

    <bean id="entityManagerFactory"
        class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
        <property name="dataSource" ref="dataSource" />
        <property name="persistenceUnitName" value="myPersistanceUnit" />
        <property name="jpaVendorAdapter">
            <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
                <property name="databasePlatform" value="org.hibernate.dialect.DerbyDialect" />
            </bean>
        </property>
    </bean>

hibernate アノテーションの代わりに、JPA アノテーション (基本的に同じ - javax.persistence パッケージの下) を使用し、ベースの dao 呼び出しは使用します

@PersistenceContext
    protected EntityManager entityManager;

DB操作を処理します。これらの構成では、問題はないと思います。

于 2012-10-06T14:39:28.210 に答える