jpa oracle mysql,JPA-Oracle-Mysql連接數據庫配置
//...省略datasouce
class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
`class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
persistence-oracle.xml配置文件<?xml version="1.0" encoding="UTF-8"?>
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd"
version="2.1">
org.hibernate.jpa.HibernatePersistenceProvider
META-INF/orm-oracle.xml
orm-oracle.xml實體類映射文件<?xml version="1.0" encoding="UTF-8"?>
xmlns="http://xmlns.jcp.org/xml/ns/persistence/orm" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence/orm http://xmlns.jcp.org/xml/ns/persistence/orm/orm_2_1.xsd">
實體類package cn.com.taiji.com.domain;
import java.io.Serializable;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Lob;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
/**
*@ClassName: ServiceMenu
*@Description: 服務目錄
*@author ranxing
*@date 2017年8月2日 下午2:59:57
*
*/
@Entity
@Table(name="rkrm$_ywfwinfo")
@NamedQuery(name="ServiceMenu.findAll", query="SELECT t FROM ServiceMenu t")
public class ServiceMenu implements Serializable {
/**
*
*/
private static final long serialVersionUID = -1332680945578333683L;
public ServiceMenu(){
}
@Id
private String fwlxid ;
private String fwlxname;
private String fwloc;
private String fwlxdesc;
@Lob
private String fwinfo;
private String dwid;
private String ywlxid;
private String creator;
private String ctime;
private String fromfwlxid;
public String getFwlxid() {
return fwlxid;
}
public void setFwlxid(String fwlxid) {
this.fwlxid = fwlxid;
}
public String getFwlxname() {
return fwlxname;
}
public void setFwlxname(String fwlxname) {
this.fwlxname = fwlxname;
}
public String getFwloc() {
return fwloc;
}
public void setFwloc(String fwloc) {
this.fwloc = fwloc;
}
public String getFwlxdesc() {
return fwlxdesc;
}
public void setFwlxdesc(String fwlxdesc) {
this.fwlxdesc = fwlxdesc;
}
public String getFwinfo() {
return fwinfo;
}
public void setFwinfo(String fwinfo) {
this.fwinfo = fwinfo;
}
public String getDwid() {
return dwid;
}
public void setDwid(String dwid) {
this.dwid = dwid;
}
public String getYwlxid() {
return ywlxid;
}
public void setYwlxid(String ywlxid) {
this.ywlxid = ywlxid;
}
public String getCreator() {
return creator;
}
public void setCreator(String creator) {
this.creator = creator;
}
public String getCtime() {
return ctime;
}
public void setCtime(String ctime) {
this.ctime = ctime;
}
public String getFromfwlxid() {
return fromfwlxid;
}
public void setFromfwlxid(String fromfwlxid) {
this.fromfwlxid = fromfwlxid;
}
}
ServiceMenuRepository實體類相關連接數據庫接口
一般我都習慣手寫sqlpackage cn.com.taiji.com.repository;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.repository.PagingAndSortingRepository;
import cn.com.taiji.com.domain.ServiceMenu;
@Transactional//這個注解很重要哦
public interface ServiceMenuRepository extends
JpaRepository,
JpaSpecificationExecutor,
PagingAndSortingRepository{
/* 弄幾個栗子,並不是這個實體的方法
/**
* 查詢出未刪除的所有數據字典記錄集合
* @return
*/
@Query("select c from Infolink c where c.deleteFlog=1 ")
List findAllInfolinks();
//and b.infosort_id = ?1
@Query(" select c from Infolink c , InfosortInfolink b where b.infolinkId = c.infolinkId and c.infolinkId = ?1 ")
List findLinkById(String infolinkId);
//and b.infosort_id = ?1
@Modifying
@Query(" update Infolink c set c.deleteFlog = 0 where c.infolinkId= ?1 ")
void updateFlag( String infolinkId);
*/
}
一個查詢至於拼接過程看需求自己弄吧類似普通sql拼接@PersistenceContext
private EntityManager em;
@Inject
LogZJTaskInfoRepository logZJTaskInfoRepository;
@Inject
ServiceInfoRepository serviceInfoRepository;
//...以上省略 這個sql不是上面實體里面的只是例子,2個表的查詢寫法
// 大於2個表的方式,還不如使用級聯就行了,當然我不會..
// length()是oracle中clob字段的非空
// 只要配置正確mysql和oracle是通用的,除了特殊字段需要自己處理,
// 正常的都一樣查詢,mysql會自己查詢為limit,oracle會為ROWNUM
StringBuilder jpql = new StringBuilder ("select c from LogZJTaskInfo c , TimeInfo d where c.zyid = d.zyid "
+ "and length(d.timeinfo)>0 ") ;
Query query = em.createQuery(jpql.toString());
query.setFirstResult(page*pageSize); // query
query.setMaxResults(pageSize);
// query.setParameter("appointPeopleId", searchParameters.get("userId")); //登錄人Id
List list = query.getResultList();
map.put("List", list);
// 來個單一查詢 通用方法傳id就行
ServiceInfo si = serviceInfoRepository.findOne((String) object);
總結
以上是生活随笔為你收集整理的jpa oracle mysql,JPA-Oracle-Mysql連接數據庫配置的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 放量缩量k线图里怎么看
- 下一篇: 茅台酒价格大降 很多黄牛都受到了影响