gpt4 book ai didi

java - 我们如何在 Hibernate 中设置数据库 session 变量?

转载 作者:行者123 更新时间:2023-12-01 17:59:13 25 4
gpt4 key购买 nike

当使用 Hibernate 和 JPA 时,我有一个现有的 DAO 抽象类,它以这种方式设置实体管理器:

@PersistenceContext(unitName = "<name>")
private EntityManager entityManager;

在某些方法中,它的使用方式如下:

public ObjectType findByPrimaryKey(int id) {
return entityManager.find(ObjectType, id);
}

我想在与“查找”查询相同的事务中设置数据库配置参数。但是,我似乎找不到entityManager 使用的内部事务。我编写了一个方面来检查事务注释并在其中设置变量,并在 findByPrimaryKey 方法之上添加了 @Transactional,但仍然没有在 session 中设置。

这里有什么不正确的地方或者其他方法吗?理想情况下,希望在每个查询之前设置一个特殊变量。

最佳答案

最终的解决方案是将 Spring 的“@Transactional”注释(在调用我的数据访问层之前自动打开事务)与切入“@Transactional”注释并在事务中运行查询的方面相结合。在调用 Hibernate 数据访问层之前,只需在“@Transactional”方法中执行任何查询也可以。

如果没有“@Transactional”注释,我无法控制 Hibernate 的事务管理。

关于java - 我们如何在 Hibernate 中设置数据库 session 变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60664276/

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