2011-12-09 55 views
7

Trước đó trong dự án của tôi, tôi đã sử dụng kết hợp Hibernate 3.3.2, openJPA 2.1.1 để kết nối với cơ sở dữ liệu và truy xuất thông tin từ bảng. Bây giờ tôi muốn loại bỏ Hibernate và sử dụng openJPA để thực hiện kết nối và truy xuất thông tin.Cấu hình persistence.xml của openJPA

cấu hình trước đó của tôi về persistence.xml là

<?xml version="1.0" encoding="UTF-8"?> 
<persistence version="2.0" 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 persistence_2_0.xsd"> 
<persistence-unit name="test" transaction-type="RESOURCE_LOCAL"> 
    <provider>org.hibernate.ejb.HibernatePersistence</provider> 
     <properties> 
     <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/> 
     <property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/> 
     <property name="hibernate.connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</property> 
     <property name="hibernate.connection.url" value="jdbc:mysql://10.10.10.10:3306/test?autoReconnect=true"/> 
     <property name="hibernate.connection.username" value="user"/> 
     <property name="hibernate.connection.password" value="pwd"/> 
     <property name="hibernate.generate_statistics" value="true"/> 
     <property name="hibernate.cache.provider_class" value="org.hibernate.cache.OSCacheProvider"/> 
     <property name="hibernate.cache.use_second_level_cache" value="true"/> 
     <property name="hibernate.show_sql" value="true"/> 
     <property name="hibernate.format_sql" value="true"/> 
     <property name="hibernate.c3p0.min_size" value="5"/> 
     <property name="hibernate.c3p0.max_size" value="20"/> 
     <property name="hibernate.c3p0.timeout" value="1800"/> 
     <property name="hibernate.c3p0.max_statements" value="50"/> 
     <property name="hibernate.c3p0.idle_test_period" value="1800"/> 
     <property name="c3p0.idleConnectionTestPeriod" value="1810"/> 
     </properties> 
    </persistence-unit> 
</persistence> 

Bây giờ tôi muốn chuyển sang OpenJPA 2.1.1 và cho rằng tập tin persistence.xml của tôi là

<?xml version="1.0" encoding="UTF-8"?> 
<persistence version="2.0" 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"> 
<persistence-unit name="TestOpenJPAPersistence" transaction-type="RESOURCE_LOCAL"> 
    <provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider> 
    <properties> 
     <property name="javax.persistence.jdbc.url" value="jdbc:mysql://10.10.10.10:3306/test?autoReconnect=true"/> 
     <property name="javax.persistence.jdbc.user" value="user"/> 
     <property name="javax.persistence.jdbc.password" value="pwd"/> 
     <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/> 
     <property name="openjpa.ConnectionFactoryProperties" value="MaxActive=10,MaxIdle=5,MinIdle=2,MaxWait=1800000"/> 
     <property name="openjpa.Log" value="File=E:\\temp\\TestOpenJPAPersistence\\org.apache.openjpa.log, DefaultLevel=DEBUG, Runtime=INFO, Tool=INFO, SQL=TRACE"/> 
     <property name="openjpa.jdbc.DBDictionary" value="org.apache.openjpa.jdbc.sql.MySQLDictionary"/> 
     <property name="openjpa.DataCache" value="true"/> 
     <property name="openjpa.QueryCache" value="true"/> 
    </properties> 
</persistence-unit> 
</persistence> 

Câu hỏi của tôi là những gì là tài sản thay thế cho tài sản hibernate sau đây trong openJPA

<property name="hibernate.connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</property> 
<property name="hibernate.cache.provider_class" value="org.hibernate.cache.OSCacheProvider"/> 
<property name="hibernate.cache.use_second_level_cache" value="true"/> 
<property name="hibernate.show_sql" value="true"/> 
<property name="hibernate.format_sql" value="true"/> 
<property name="hibernate.c3p0.min_size" value="5"/> 
<property name="hibernate.c3p0.max_size" value="20"/> 
<property name="hibernate.c3p0.timeout" value="1800"/> 
<property name="hibernate.c3p0.max_statements" value="50"/> 
<property name="hibernate.c3p0.idle_test_period" value="1800"/> 

+1

Không có vi phạm, nhưng số các thông số bạn đưa ra cho thấy thái độ: "Làm điều đó cho tôi", chứ không phải "Giúp tôi, tôi bị mắc kẹt với ...". Đếm mình may mắn nếu có ai cung cấp danh sách đầy đủ. – MaDa

Trả lời

9

Sau nhiều lần thử và lỗi, tôi đã tìm thấy một số thông số thay thế. tập tin persistence.xml hiện tại của tôi trông giống như

persistence.xml:

<provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider> 
<properties> 
    <property name="openjpa.ConnectionURL" value="jdbc:mysql://xx.xx.xx.xx:3306/dbname"/> 
    <property name="openjpa.ConnectionDriverName" value="com.mysql.jdbc.Driver"/> 
    <property name="openjpa.ConnectionUserName" value="xxx"/> 
    <property name="openjpa.ConnectionPassword" value="xxx"/> 
    <property name="openjpa.DynamicEnhancementAgent" value="true"/> 
    <property name="openjpa.RuntimeUnenhancedClasses" value="supported"/> 
    <property name="openjpa.Log" value="SQL=TRACE"/> 
    <property name="openjpa.ConnectionFactoryProperties" value="PrettyPrint=true, PrettyPrintLineLength=72, PrintParameters=true, MaxActive=10, MaxIdle=5, MinIdle=2, MaxWait=60000"/> 
</properties> 

Đối với kết nối tổng hợp thông tin check và cho tất cả OpenJPA Thuộc tính check

Hope this helps

+1

+1 cho liên kết tới tất cả các thuộc tính, nhờ =) – earcam

Các vấn đề liên quan