当前位置: 首页 > 知识库问答 >
问题:

TransactionAttributeType.NOT_SUPPORTED对于检索实体有意义吗?

皮献
2023-03-14

它具有<code>TransactionAttribute类型。不支持,每种DB查找方法都有意义吗?如果实体不打算执行更新,我看不到将其附加的意义。

@TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED)
pubic List<AnEntity> getListEntities(){
    TypedQuery<AnEntity> query = em.createNamedQuery("AnEntity.myQuery",AnEntity.class);
    return query.getResultList();
}

它最终还在缓存中吗?

只有在需要更新时,使用< code>REQUIRED事务传播才是有用的:

 @TransactionAttribute(TransactionAttributeType.REQUIRED)
 public void editPersonName(Integer id, String newName){
      AnEntity anEntity= em.find(AnEntity.class, id);
      anEntity.setName(newName);
 }

除此之外,我真的看不出这一点。

共有1个答案

司空宗清
2023-03-14

不,对于只读查询使用NOT_SUPPORTED事务传播没有意义,但是使用默认的REQUIRED事务传播很有意义。您还需要一个事务来读取数据。数据库总是使用事务,无论您是否指定它。

使用显式事务可以在单个事务中对多个语句进行分组,如果使用Hibernate,则可以避免过度的连接释放开销。

仅仅因为JPA允许您在没有事务的情况下执行读取查询,并不意味着您必须这样做。

当您要在当前事务范围之外执行服务方法时,NOT_SUPPORTED模式很有用。例如,当您拥有根本不需要事务的方法(例如发送电子邮件)时,可以避免启动/结束事务上下文的开销。

 类似资料:
  • 问题内容: 是否有对每一个数据库查找方法是有道理的?如果不执行更新,我看不到附加实体的意义。 它仍然会保留在缓存中吗? 使用事务传播似乎唯一有用的时间是在需要更新时: 除此之外,我没有真正的意义。 问题答案: 不,使用事务传播进行只读查询没有任何意义,但是使用默认事务传播非常有意义。您也需要一笔交易来读取数据。该数据库始终使用事务,如果你指定与否,不管。 使用显式事务允许您在一个事务中将多个语句分

  • 我是JPA/JPQL的新手,所以如果这个问题不是很清楚,请原谅。 我正在使用以下JPQL查询: 查询在无状态会话上运行,以便获得DB中当前数据的事实上的快照,该快照与实体管理器分离(因此使用了left join fetch)。 不幸的是,我遇到了两个问题: 在尝试微调性能时,使用本机查询似乎并没有比使用JPQL查询更好的性能。使用本机查询也会产生对象类型的结果,这需要后期处理。

  • 我试图使用实体框架核心从我的表中检索一行。这似乎很简单,但我无法让它工作。 我可以通过使用获得列表 _上下文。国家。ToList(); 这给了我表格中国家的完整列表。现在我只需要得到一个与ID匹配的国家。如何做到这一点,因为EF核心中缺少Find()。我们可以选择在哪里吗。谁能帮我理解一下语法吗。 我的国家/地区模型如下所示 公共部分类COUNTRY{public string COUNTRYID

  • 在我的Rest服务中,我可以通过使用身份验证后获得主体信息 陈述 密钥斗篷主体不包含我需要的关于已验证用户的所有信息。是否可以自定义我自己的主体类型?在密钥斗篷服务器端,我开发了一个用户联合提供程序。我看到UserModel可以向我的用户添加一组自定义属性。 可以在代码中插入我的自定义主体吗? 是否可以从KeyClope主体检索此属性? 有什么办法?

  • RDF的结果:ClassA类型: 在Protege:x1,x2,x3,x4在Eclipse through Jena:x1,x2,x3,x4,x5,x6,x7,x8,X9... 在本体编辑器中,它工作得很好。然而,在Java中,当我执行查询时,我也得到了不属于该类的个体,但它们通过属性与类个体之一相连。有人知道怎么解决吗?本体论是正确的。 null 门生:

  • 问题内容: 我想知道是否有一种方法可以为JPA中的特定持久性单元获取所有Entities类及其元数据。 通过元数据,我不仅指字段,还指它们的列名,长度,精度,数据类型,以及表名和我可以得到的任何东西。我尝试使用元模型,但我认为这仅适用于JPQL查询。 我需要向用户显示某个PU的所有活动实体,并且我不想在某些数组或数据库中对它们进行硬编码,我希望API告诉我它具有什么实体。并且,如果可能,获取每个实