엔티티 쿼리 메소드, "지속"메소드 등을 넣을 위치 (어떤 계층)?

StackOverflow https://stackoverflow.com/questions/183366

  •  06-07-2019
  •  | 
  •  

문제

JPA/Hibernate 엔티티가있는 이음새 앱이 있습니다. 그리고 이제 쿼리, 지속성 방법을 어디에 두어야하는지 궁금합니다.

기본 선택은 주입 된 세션 콩 레이어에 넣는 것 같습니다.

@PersistenceContext(...) @Inject EntityManager entityManager;

그러나 나는 오히려 실체 자체에 대한 방법을 갖고 싶다고 생각합니다. 프로/콘은 무엇입니까?

  1. testablity?
  2. 니스?
  3. 성능?

그리고 세션 bean이 아닌 엔티티의 메소드에서 EntityManager 등과 상호 작용하기위한 모범 사례에 대한 링크가 있습니까?

최고, 앤더스

도움이 되었습니까?

해결책

나는 이음새에 대한 경험이 없지만 Java 프로젝트에 대한 경험을 통해 Bean을 지속적인 방법을 피하는 것이 가장 쉽다는 것을 알았습니다. 우리가 일반적으로하는 일 :

  • 비즈니스 객체에 대한 콩이 있습니다 (예 : "사용자"및 "설정")
  • 이 콩을 유지하고 검색 할 수있는 DAO 층이있어 (간단한 crud)
  • 이제 콩을 다루는 방법과 콩의 집계를 만드는 방법조차 서비스 계층이 있습니다.

이런 식으로, 모든 것이 꽤 분리되어 있으며 유닛 테스트가 쉽습니다. 성능은 일반적 으로이 설정에서 문제가되지 않습니다.

다른 팁

예, 그것은 또한 내가 전에 한 일입니다.

일반적으로, EJB는 미친 듯이 장점과 보일러 플레이트라고 생각하지만 이음새는 실제로 약간 도움이되므로 현재 프로젝트에서 세션 콩의 여분의 계층이 저를 쿼리하고 짜증나게하는 이유입니다. 이 레이어를 죽일 수 있다면 합리적으로 간결한 앱을 만들 수 있다는 느낌이 들었습니다 ...

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top