ejb-3.0 – 设置此TransactionAttributeType.NOT_SUPPORTED可以获得什么

前端之家收集整理的这篇文章主要介绍了ejb-3.0 – 设置此TransactionAttributeType.NOT_SUPPORTED可以获得什么前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我碰巧找到了使用这个结构的例子,虽然我不知道我能从中得到什么?

这是否意味着无状态EJB中的所有select语句都应遵循此规则?

  1. @Stateless
  2. public class EmployeeFacade {
  3. @PersistenceContext(unitName="EmployeeService")
  4. EntityManager em;
  5.  
  6. @TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED)
  7. public List<Department> findAllEmployees() {
  8. return em.createQuery("SELECT e FROM Employee e",Employee.class)
  9. .getResultList();
  10. }

我从中得到了什么?

谢谢.

解决方法

你得到的是:

>相对正式的方式来告诉您的方法不需要事务(因此您知道它不会在EntityManager中调用persist,merge或remove).
>在某些情况下可能的性能优化.

>无需创建/传递交易.根据Java EE 5 Tutorial:“由于交易涉及开销,这个属性可能会提高性能.”>根据其他来源(例如Pro JPA 2),它提供了实现根本不创建托管实体的可能性(这可能比立即创建分离实体更重要).

猜你在找的Java相关文章