gpt4 book ai didi

hibernate 活跃交易

转载 作者:行者123 更新时间:2023-12-03 14:17:20 24 4
gpt4 key购买 nike

在我的服务类里,我想做些类似的事情:

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不太熟悉,但是如果服务方法检查事务是否存在,使用它,否则创建一个新事务并关闭它,那将是很棒的。

如果有可能,我是否应该考虑任何性能原因(或其他原因)?还是通过其他方式执行此类操作?

此致

最佳答案

lweller的答案比我的答案更合适,但是您可以通过调用session.getTransaction().isActive()来检查事务的状态

有关Hibernate Transaction的信息,请参见javadoc。

关于 hibernate 活跃交易,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4854746/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com