在我的服務類,我想有這樣的事情:休眠活動事務
class ClientService {
// Authorize
// Returns true: Authorization successful
// Returns false: Authorization failed
public boolean authorize(String id, String password) {
//Here I would like to check if an active transaction exists.
//If it exists, use that one, else create a new session and start
//a new transaction.
//For example:
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
if(!session.SOMEMETHOD_CHECK_IF_TRANSACTION_IS_ACTIVE) {
session.beginTransaction();
}
Client client = clientDAO.get(id);
if (client != null) {
if (client.getPassword().equals(password)) {
logger.debug("Authorization successful. ID: " + client.getId() + ", password: " + client.getPassword());
return true;
} else {
logger.error("Authorization unsuccessful");
return false;
} else {
logger.debug("Authorization unsuccessful. No client exists with ID: " + id);
return false;
}
}
}
通知的方法頭後的註釋文本。我對Hibernate並不熟悉,但是我認爲如果服務方法檢查事務是否存在,使用它,否則創建一個新的並關閉它將會很好。
如果有可能,我是否應該考慮任何性能原因(或其他)?或者是否有任何其他方式來執行這種事情?
問候
我認爲,session.getTransaction()肯定會返回一個活動的事務...所以不爲我工作(atlest)....是否有任何其他解決方案? – 2013-07-17 06:30:13