Spring Date Jpa 增刪改查


 @Autowired
 private EntityManagerFactory entityManagerFactory;

 @PersistenceContext
 private EntityManager em;

 public Session getSession() {
    return entityManagerFactory.unwrap(SessionFactory.class).openSession();
 }    
/**
* 多條件查詢
*
* @param t
*/
@Override
public List<Article> ListArticle(String account,String homePage) {
CriteriaBuilder criteriaBuilder = getSession().getCriteriaBuilder();
CriteriaQuery<Article> criteriaQuery = criteriaBuilder.createQuery(Article.class);
Root<Article> rt = criteriaQuery.from(Article.class);
  
  //條件集合
List<Predicate> predicates = new ArrayList<Predicate>();
  //添加條件
predicates.add(criteriaBuilder.equal(rt.get("account"),account));
if (Util.isNotEmpty(homePage)){
predicates.add(criteriaBuilder.equal(rt.get("homePage"),homePage));
}
  //
criteriaQuery.where(predicates.toArray(new Predicate[predicates.size()]));

List<Article> list = getSession().createQuery(criteriaQuery).getResultList();
return list;
}
/**
* 創建信息
*
* @param t
*/
@Override
public void createObject(T t) {
EntityManager entityManager = entityManagerFactory.createEntityManager();
//4.開啟事務
EntityTransaction transaction = entityManager.getTransaction();
transaction.begin();
  
  //新建
entityManager.persist(t);

//6.提交事務
transaction.commit();

//7.關閉 EntityManager
entityManager.close();
}

/**
* 修改信息
*
* @param t
*/
@Override
public void updateObject(T t) {
EntityManager entityManager = entityManagerFactory.createEntityManager();
//4.開啟事務
EntityTransaction transaction = entityManager.getTransaction();
transaction.begin();

  //更新
entityManager.merge(t);

//6.提交事務
transaction.commit();

//7.關閉 EntityManager
entityManager.close();
}

/**
* 刪除信息
*
* @param t
*/
@Override
public void deleteObject(T t) {
EntityManager entityManager = entityManagerFactory.createEntityManager();
//4.開啟事務
EntityTransaction transaction = entityManager.getTransaction();
transaction.begin();

  //刪除
entityManager.remove(t);

//6.提交事務
transaction.commit();

//7.關閉 EntityManager
entityManager.close();
}
 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM