1. 程式人生 > >Hibernate DAO 層事務提交處理備忘

Hibernate DAO 層事務提交處理備忘

備忘是希望自己不要忘記了。以後還可以拿出來玩玩

@Repository
@Transactional
public class CommonDAO extends HibernateBaseDao<Object, Long> {

	@SuppressWarnings("rawtypes")
	public List queryByQLList(String hql) throws Exception {
		List list = new ArrayList();
		try {
			list = this.find(hql);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return list;
	}

	public void saveEntity(A a) {
		Session session = sessionFactory.openSession();
		Transaction tx = session.beginTransaction();
		session.merge(a);
		session.flush();
		try {
			tx.commit();
		} catch (Exception e) {
			tx.rollback();
			e.printStackTrace();
		}
		session.close();
	}
}
@Repository
@Transactional

為什麼寫這兩個註解。請自學一下。

分頁查詢

public List<QSRentalOrder> queryByHQLPage(String hql, int pagesize,
			int pageNum) {
		Query query = this.createQuery(hql);
		query.setFirstResult(pageNum);
		query.setMaxResults(pagesize);
		@SuppressWarnings("unchecked")
		List<QSRentalOrder> list = query.list(); // 得到每頁的資料
		return list;
	}


然後就是事務提交的步驟。實際上我記不住這麼多步驟。

知識補充:

openSession()這裡已經介紹了:需要手動的關閉;

相關推薦

Hibernate DAO 事務提交處理

備忘是希望自己不要忘記了。以後還可以拿出來玩玩 @Repository @Transactional public class CommonDAO extends HibernateBaseDao<Object, Long> { @SuppressWarn

Hibernate Tomcat JNDI資料來源配置(

簡述: 配置JNDI 查詢Tomcat 中server.xml中定義的資料來源 步驟: 1. 修改elipse的資料來源server.xml 主要修改如下, 1. 新增下面這段Context文字 其中StudentManagementWeb是專案名稱 &l

資料預處理(特徵選擇,三大降維技術,資料形態處理,模型評估)

這一塊的每一個小點都可以引申出很多的東西,所以先做一個大概,用以備忘,持續更新。 *一般過程: (1)資料採集 資料採集是最基本也很耗時間的工作。比如對於具體的工程事件,需要考慮採集哪些型別的資料?需要哪些屬性?需要多少資料支撐?然後再實際去採集這些資料,離線採集?線上獲取? (2)

資料預處理

這一塊的每一個小點都可以引申出很多的東西,所以先做一個大概,用以備忘,持續更新。 *一般過程: (1)資料採集 資料採集是最基本也很耗時間的工作。比如對於具體的工程事件,需要考慮採集哪些型別的資料

JDBC將多個dao的方法放在一個事務處理

必備項 使用同一個connection autoCommit設成false,最後選擇回滾還是統一提交 如果讓整個應用只使用同一個connection,程式就會變成單執行緒應用,肯定不好;這是需要用到ThreadLocal類,保證一個執行緒類的connectio

SSH(六)hibernate持久模板於事務管理

property ted 保存 actor brush work session name cti   持久層只要完成數據對數據庫增刪改查的操作,我們常說的hibernate區別於mybatis是在於他的全自動,而hibernate的全自動則主要體現於 他的模板,一些簡單的

SSH dao異常 org.hibernate.HibernateException: No Session found for current thread

llb exec pan val span ldr cep sch nds 解決方法: 在 接口方法中添加 事務註解 即可。 public interface IBase<PK extends Serializable, T> { @

java mysql多次事務 模擬依據匯率轉賬,並存儲轉賬信息 分層完成 dao service client 連接池使用C3p0 寫入庫使用DBUtils

dao AI state rom thread dbutils nbsp jar包 fig Jar包使用,及層的劃分 c3p0-config.xml <?xml version="1.0" encoding="UTF-8"?> <c3p0-conf

keras常見用法

keras ble for ons IV mask lar ID 時間 Embedding層 keras.layers.Embedding(input_dim, output_dim, embeddings_initializer=‘uniform‘, embeddings

Dao結合Service處理異常

1. 介面存在異常不利於解耦。 2. 將編譯時異常轉化為執行時異常或其子類,通知上層,上層可以根據自身能力選擇處理或向上丟擲。 舉例: 將UserDao中的SQLException轉化為DaoException, 其中SQLException屬於編譯時異常, DaoException繼承RuntimeEx

python 處理haproxy 新增backend

# -*- coding:utf-8 -*- import re,os from io import BytesIO from saltapiauth import SaltApi from jinja2 import Template salta = SaltApi() # contents is d

mybatis example處理and、or關係的方法(轉載wang_song_yan)作者不是我,我拿來,謝謝原作者

mybatis example處理and、or關係的方法 2015年10月12日 23:02:43 wang_song_yan 閱讀數:28693 標籤: javaweb mybatis criteria sql andor 更多 個人分類: JavaWeb 1.( xx and x

p6spy列印hibernate事務提交產生的

問題 hibernate在提交事務時會檢查發生變化的持久化物件(Persistence Object),同時生成update SQL語句,進行物件更新。 此時發現p6spy沒有打印出來完整sql,這是怎麼回事呢? 分析 跟蹤hibernate程式碼,可以

spring的一個事務管理,在controllerdao都可以用

import org.springframework.transaction.support.DefaultTransactionDefinition; public PlatformTransactionManager getTransactionManager() { re

事務為什麼加在service而不加在dao

事務註解 @Transactional一般的話都加在service層,問了一些剛入行的朋友為什麼,他們給的答案很模糊,所以自己去搜了下,下面是我的理解。 什麼是事務? 在資料庫中,所謂事務是指一組邏輯操作單元即一組sql語句。當這個單元中的一部分操作

事務註解 @Transactional一般的話為什麼都加在service而不加在dao

什麼是事務? 在資料庫中,所謂事務是指一組邏輯操作單元即一組sql語句。當這個單元中的一部分操作失敗,整個事務回滾,只有全部正確才完成提交。判斷事務是否配置成功的關鍵點在於出現異常時事務是否會回滾 事務四大特性 1. 原子性(Atomicity) 原子性是指事務是一

hibernate中session增刪改操作及事務提交的問題

一、問題回顧 Session session = MySessionFactory.getSession(); // Transaction tx = null; // try{ // String hql="delete form td_report where ID=1" ; //

Hibernate中的web/dao程式碼

Web層 //表現層通用實現 public class BaseAction<T> extends ActionSupport implements ModelDriven<T> { protected PageBean pageBean = new Pag

訊號處理函式編碼原則

很多伺服器都會涉及suspend, resume等操作,這個時候都要用到訊號: $kill -l 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP 6)

ssm4.3版本配置dao與mapper.xml不在同一個包中的處理方法

比如:dao的寫法是package com.lucas.dao;import java.util.List;import org.springframework.stereotype.Repository;import com.lucas.bean.User;@Reposit