0
如果javaEE(wildfly,cdi)中的bean /實例在其內部執行jpa查詢(僅選擇)時應該是@RequestScoped還是應該始終對jpa使用@stateless?執行JPA查詢的CDI Bean
如果javaEE(wildfly,cdi)中的bean /實例在其內部執行jpa查詢(僅選擇)時應該是@RequestScoped還是應該始終對jpa使用@stateless?執行JPA查詢的CDI Bean
我不明白這個問題的重點。
如果你有一個業務層和使用EJB的可能性,我會去持有@Stateless
持有業務邏輯和JPA交互,並將特定的業務接口公開給客戶端。
在任何情況下,如果你只是在做一個選擇,沒有別的,也許對前端盡顯你的數據表,我建議來註釋業務方法是這樣的:
@TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED)
public List<MyEntity> findByWhateverCriteria(String param) {
// business logic
}
爲什麼呢?因爲你可以保存應用服務器資源。
另一方面,如果出於上述相同的原因,只需在前端顯示數據並忘記它,則@RequestScoped就是合適的。