JPA客户端程序

写了一个JPA的客户端程序,摘录一些内容,为以后写程序参考

=========

persistence.xml

=========

Oracle:

<?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="JPA_Samples">
		<class>com.jpa.samples.Customer</class>
		<properties>  
            <property name="javax.persistence.jdbc.driver" value="oracle.jdbc.OracleDriver"/>       
            <property name="javax.persistence.jdbc.url" value="jdbc:oracle:thin:@//yourip:1521/orcl"/>     
            <property name="javax.persistence.jdbc.user" value="scott"/>        
            <property name="javax.persistence.jdbc.password" value="tiger"/>  
            <property name="eclipselink.logging.level" value="FINE" />  
           <property name="eclipselink.logging.level.sql" value="FINE" />  
       </properties>  
	</persistence-unit>
</persistence>

SQLServer:

    <persistence-unit name="CT_JPA_PessimisticLock"  transaction-type="RESOURCE_LOCAL">

        <class>jpa.rowlock.entity.RowLockPesEntity</class>
        <properties>
            <property name="javax.persistence.jdbc.driver" value="com.microsoft.sqlserver.jdbc.SQLServerDriver"/>     
            <property name="javax.persistence.jdbc.url" value="jdbc:sqlserver://127.0.0.1:1433;databasename=db"/>   
            <property name="javax.persistence.jdbc.user" value="root"/>      
            <property name="javax.persistence.jdbc.password" value="root"/>
            <property name="eclipselink.logging.level" value="FINE" />
            <property name="eclipselink.logging.level.sql" value="FINE" />
        </properties>
    </persistence-unit>


Postgres:

<?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="JPATest">
  <class>com.jpa.test.Customer</class>
   <properties> 
  <property name="javax.persistence.jdbc.driver" value="org.postgresql.Driver"/> 
  <property name="javax.persistence.jdbc.url" value="jdbc:postgresql://localhost:5432/postgres"/> 
  <property name="javax.persistence.jdbc.user" value="postgres"/> 
  <property name="javax.persistence.jdbc.password" value="tiger"/> 
  <property name="eclipselink.logging.level" value="FINE" /> 
  <property name="eclipselink.logging.level.sql" value="FINE" /> 
  </properties> 
 </persistence-unit>
</persistence>


SQLite:

 <persistence-unit name="JPATest">
  <class>com.jpa.test.Customer</class>
   <properties> 
  <property name="javax.persistence.jdbc.driver" value="org.sqlite.JDBC"/> 
  <property name="javax.persistence.jdbc.url" value="jdbc:sqlite:C:\sqlitedb\test.db"/> 
  <property name="eclipselink.logging.level" value="FINE" /> 
  <property name="eclipselink.logging.level.sql" value="FINE" /> 
  </properties> 
 </persistence-unit>



另外添加服务器端的:

    <persistence-unit name="CT_JPA_PessimisticLock" >

        <jta-data-source>jdbc/__default</jta-data-source>   <!-- data resource -->     
        <class>jpa.rowlock.entity.RowLockPesEntity</class>
        <properties>
            <property name="toplink.ddl-generation" value="drop-and-create-tables" />
            <property name="toplink.logging.level" value="FINE" />
            <property name="toplink.logging.level.sql" value="FINE" />
        </properties>
    </persistence-unit>

=========

Client

=========

    public static void main(String[] args) {
        EntityManagerFactory emf = Persistence.createEntityManagerFactory("CT_JPA_PessimisticLock");
        EntityManager em = emf.createEntityManager();
        em.getTransaction().begin();
//        Query query = em.createQuery("select r from RowLockPesEntity r where r.name=:name").setParameter("name", "");
//        Query query = em.createQuery("select r from RowLockPesEntity r where r.id=:id").setParameter("id", 1);
//        query.setHint(
//                org.eclipse.persistence.config.QueryHints.PESSIMISTIC_LOCK,
//                org.eclipse.persistence.config.PessimisticLock.Lock);
//        RowLockPesEntity r = (RowLockPesEntity)query.getSingleResult();
//        RowLockPesEntity entity = em.getReference(RowLockPesEntity.class, 1);
        RowLockPesEntity entity = new RowLockPesEntity();
        entity.setId(1);
        entity = em.merge(entity);
        em.remove(entity);
        em.getTransaction().commit();
//        System.out.println("id : " + r.getId() + ", name : " + r.getName());

    }

 

=========

Entity

=========

路径: jpa.rowlock.entity.RowLockPesEntity

代码片段:

@Entity
@NamedQueries(value = {
    @NamedQuery(name = "findRlpeById", query = "select r from RowLockPesEntity r where r.id = :id"),
    @NamedQuery(name = "findRlpeByName", query = "select r from RowLockPesEntity r where r.name = :name")
})
public class RowLockPesEntity implements java.io.Serializable{
    private static final long serialVersionUID = 1L;
    @Id
    private int id;
   
    String name;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

}

===============================

toplink 中相关属性的说明

===============================

1    <property name="toplink.ddl-generation" value="none"/>                    do not create DDL; no schema is generated   
2   <property name="toplink.ddl-generation" value="create-tables"/>      create tables at startup time   
3   <property name="toplink.ddl-generation" value="drop-and-create-tables "/>   drop, then create tables   
4    <property name="toplink.ddl-generation.output-mode" value="sql-script "/>   create DDL and write it to a file   
5     <property name="toplink.ddl-generation.output-mode" value="both"/>            create DDL to file AND drop/create tables  
6    <property name="toplink.ddl-generation.output-mode" value="database"/>    do not create DDL to file and drop/create tables   
7    <property name="toplink.drop-ddl-jdbc-file-name" value="fileName"/>             specify destination filename for DDL   
8     <property name="toplink.application-location" value="filePath"/>                       specify destination filepath for DDL  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值