JPA sem transação

Eu sou novo no JPA. Estou desenvolvendo um aplicativo que usa JPA (implementação do Hibernate) e Spring. Declarei uma unidade de persistência no meu persistence.xml e configuração sobre EntityManagerFactory nos meus arquivos de configuração do Spring. Algo assim:

<bean id="myEmf"   class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
  <property name="dataSource" ref="dataSource" />
  <property name="packagesToScan" value="my.package" />
  <property name="jpaVendorAdapter">
     <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter" />
  </property>
  <property name="jpaProperties">
     <props>
        <prop key="hibernate.hbm2ddl.auto">create-drop</prop>
        <prop key="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</prop>
     </props>
  </property>

Então, eu tenho alguns DAOs em que injeto o entityManager com a anotação @PersistenceContext:

public MyDaoImpl implements MyDao{
   private EntityManager entityManager;

   @PersistenceContext
   private void setEntityManager(EntityManager em){
        this.entityManager = em;
    }
 } 

E, finalmente, tenho alguns serviços onde os DAOs são injetados (pela anotação do @Autowired Spring):

public MyServiceImpl implements MyService{
  @Autowired
  private MyDao myDao;

  public List<MyEntity> readOperation(){
   //
   return myDAo.searchAll();
 }
}

Como é uma operação somente leitura, pensei que não era necessária a anotação @Transactional, mas sem ela, há uma exceção:

java.lang.IllegalStateException: No transactional EntityManager available
    at org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler.invoke(SharedEntityManagerCreator.java:223)
    at $Proxy121.unwrap(Unknown Source) 

Eu li alguns outros posts como este:java.lang.IllegalStateException: nenhum Transity EntityManager disponível

E tudo o que se diz é que a anotação transacional é necessária. É verdade que funciona com ele, mas eu gostaria de saber (e por que) se todos os métodos (mesmo operações somente leitura) devem ser transacionais.

questionAnswers(2)

yourAnswerToTheQuestion