当前位置: 首页 > 面试题库 >

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

郁隐水
2023-03-14
问题内容

是否有TransactionAttributeType.NOT_SUPPORTED对每一个数据库查找方法是有道理的?如果不执行更新,我看不到附加实体的意义。

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

它仍然会保留在缓存中吗?

使用REQUIRED事务传播似乎唯一有用的时间是在需要更新时:

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

除此之外,我没有真正的意义。


问题答案:

不,使用NOT_SUPPORTED事务传播进行只读查询没有任何意义,但是使用默认REQUIRED事务传播非常有意义。您也需要一笔交易来读取数据。该数据库始终使用事务,如果你指定与否,不管。

使用显式事务允许您在一个事务中将多个语句分组,并且,如果使用的是Hibernate,则可以避免大量的连接释放开销。

仅仅因为JPA允许您无需事务就可以执行读取查询,但这并不意味着您必须这样做。

NOT_SUPPORTED当您要在当前事务范围之外执行服务方法时,此模式很有用;对于根本不需要事务的方法(例如,发送电子邮件),该模式很有用,从而避免了开始/结束事务的开销上下文。



 类似资料:
  • 它具有<code>TransactionAttribute类型。不支持,每种DB查找方法都有意义吗?如果实体不打算执行更新,我看不到将其附加的意义。 它最终还在缓存中吗? 只有在需要更新时,使用< code>REQUIRED事务传播才是有用的: 除此之外,我真的看不出这一点。

  • 我是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告诉我它具有什么实体。并且,如果可能,获取每个实