相关疑难解决方法(0)

在persistence.xml和spring配置文件中配置数据源之间的区别

我已经以两种方式看到(并完成了)数据源配置(下面的代码仅用于演示):

1)配置内部持久性单元,如:

<persistence-unit name="LocalDB" transaction-type="RESOURCE_LOCAL">
    <class>domain.User</class>
    <exclude-unlisted-classes>true</exclude-unlisted-classes>
    <properties>
        <property name="hibernate.connection.driver_class" value="org.hsqldb.jdbcDriver"/>
        <property name="hibernate.connection.url" value="jdbc:hsqldb:hsql://localhost"/>
        <property name="hibernate.hbm2ddl.auto" value="create"/>
        <property name="hibernate.c3p0.min_size" value="5"/>
        ....
        <property name="hibernate.dialect" value="org.hibernate.dialect.HSQLDialect"/>
    </properties>
</persistence-unit>
Run Code Online (Sandbox Code Playgroud)

2)配置spring配置文件(如applicationContext.xml):

<bean id="domainEntityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
    <property name="persistenceUnitName" value="JiraManager"/>
    <property name="dataSource" ref="domainDataSource"/>
    <property name="jpaVendorAdapter">
        <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
            <property name="generateDdl" value="false"/>
            <property name="showSql" value="false"/>
            <property name="databasePlatform" value="${hibernate.dialect}"/>
        </bean>
    </property>
</bean>

<bean id="domainDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
    <property name="driverClass" value="${db.driver}" />
    <property name="jdbcUrl" value="${datasource.url}" />
    <property name="user" value="${datasource.username}" />
    <property name="password" value="${datasource.password}" />
    <property name="initialPoolSize" value="5"/>
    <property name="minPoolSize" value="5"/>
    .....
</bean> …
Run Code Online (Sandbox Code Playgroud)

java spring persistence jpa

34
推荐指数
1
解决办法
3万
查看次数

Equinox(OSGi)和JPA/Hibernate - 寻找实体

我试图在OSGi(Equinox)环境中使用Hibernate/Spring.如果我明确地将它指向Persistence.xml中的Entity类,它的效果很好:

    <class>com.es.t.eee.domain.StuffSource</class>
    <class>com.es.t.eee.domain.PostalAddress</class>
Run Code Online (Sandbox Code Playgroud)

我想要的是让Hibernate"找到"所有的Entity类,就像在OSGi环境之外一样.

Hibernate正在寻找@Entities的正确包:

Searching mapped entities in jar/par: bundleresource://34/
WARN  27-07 15:30:24,235 (InputStreamZippedJarVisitor.java:doProcessElements:41):
Unable to find file (ignored): bundleresource://34/
Run Code Online (Sandbox Code Playgroud)

它看起来应该可以正常工作,但是当它在Bundle Jar中查找@Entities时会发生异常,我不知道为什么.我已经包含了Hibernate正在吐出的日志的重要部分.

有没有人有任何想法我做错了什么或这里的问题是什么?

我在用:

  • Hibernate Core 3.3.0.SP1
  • Hibernate Annotations 3.4.0.GA
  • Hibernate Commons Annotations 3.1.0.GA
  • Hibernate EntityManager 3.4.0.GA
  • Equinox 3.4
  • Spring Dynamic Modules 1.2.0

这是Hibernate解析Persistence.xml的地方

INFO  27-07 15:30:24,110 (Version.java:<clinit>:15):
Hibernate Annotations 3.4.0.GA
INFO  27-07 15:30:24,110 (Environment.java:<clinit>:543):
Hibernate 3.3.0.SP1
INFO  27-07 15:30:24,110 (Environment.java:<clinit>:576):
hibernate.properties not found
INFO  27-07 15:30:24,126 (Environment.java:buildBytecodeProvider:709):
Bytecode provider name : javassist
INFO  27-07 15:30:24,126 (Environment.java:<clinit>:627):
using JDK …
Run Code Online (Sandbox Code Playgroud)

spring hibernate equinox

4
推荐指数
1
解决办法
6273
查看次数

标签 统计

spring ×2

equinox ×1

hibernate ×1

java ×1

jpa ×1

persistence ×1