영속성을 가지는 엔티티 ArrayList가 있는데,
나는 이 중 일부가 DB에 저장되어있는지 검증하는 로직을 거치고 저장에 제외하고싶음.
근데 이걸 Controller단에서 처리하면 코드가 너무 난잡해서 Repository나 Service에서 처리하고 싶은데 뭐 방법없냐..
후,,
영속성을 가지는 엔티티 ArrayList가 있는데,
나는 이 중 일부가 DB에 저장되어있는지 검증하는 로직을 거치고 저장에 제외하고싶음.
근데 이걸 Controller단에서 처리하면 코드가 너무 난잡해서 Repository나 Service에서 처리하고 싶은데 뭐 방법없냐..
후,,
정답 적어놨네 비즈니스 레이어에서 처리해라
근데 영속성 엔티티라 save할 때 거르면 에러뜸
ㅅㅂ컨트롤러가 최선인가
repository에서 함수 구현 한 다음 거기서 영속처리를 하는 방법도 있다.
어찌됐건 라우터에서는 처리하지 말아라
머 어떤식으로? 일단 지금은 서비스단에서 해당 엔티티를 생성해주고 있는데 그러지말고 Dto 하나 만들어서 Repository까지 전달해주고 Repository에서 확인하고 엔티티 생성->save 이렇게 할까?
아니 근데 그것도 안되겠다. 왜냐면 타입이 해당 Entity임..
FK 매핑해둔거라..
후자가 좋아보이는데..
모델매퍼 이런거 쓰면 안되냐
save를 repository에서 할거잖아. default method 선언하고 니가 처리할 로직을 작성하되 entity manager를 매개변수로 받아서 entity manager를 통해 save/flush 하라는 소리임 굳이 dto를 따로 둘 필요는 없다
정확한건 니 소스를 봐야 알수있을거같다
오 무슨말인지 알겠음
그럼 해당 로직을 처리하는 메소드는 일반적으로 어디에 위치시키는게 가장 바람직함?
지금 니 상황은 repo에서 밖에 안될거고 보통은 service나 repo에서 처리함 나는 후자
서비스나 레포지토리에서 처리하는게 낫지