首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >derby + hibernate +Spring

derby + hibernate +Spring
EN

Stack Overflow用户
提问于 2012-10-06 13:47:29
回答 2查看 2.4K关注 0票数 0

Netbeans创建错误的hibernate.reveng.xml失败

无法与选定的Hibernate配置文件建立数据库连接。请验证hibernate.cfg.xml中的数据库连接详细信息

我的hibernate.cfg.xml看起来像这样

代码语言:javascript
复制
<?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 (Derby)数据库。我使用MySQL时没有这个问题

EN

回答 2

Stack Overflow用户

发布于 2012-10-06 13:52:38

最有可能的原因是,Derby our of The box预期将以嵌入式模式运行,并且不允许端口连接。您应该在网络模式下运行它。

这里有信息:http://db.apache.org/derby/papers/DerbyTut/index.html

它应该为您提供设置网络模式或迁移到嵌入式系统的信息(我建议您先去网络测试这是否是问题所在),然后根据需要进行切换)。

票数 0
EN

Stack Overflow用户

发布于 2012-10-06 14:39:28

我会往另一个方向走。我将使用JPA并将hibernate设置为您的JPA供应商。它看起来有点不同,但是spring完全支持JPA (包括事务管理器和所有东西)。看起来会是这样的:

而不是hibernate.cfg.xml,您将有一个名为"persistence.xml“的xml (将驻留在资源/META中),它将如下所示:

代码语言:javascript
复制
<?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会有这样的东西:

代码语言:javascript
复制
<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包下基本上是相同的),您的基本道调用将使用

代码语言:javascript
复制
@PersistenceContext
    protected EntityManager entityManager;

来处理DB操作。在这些配置下,我不认为你会有任何问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12760349

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档