소개
게시글
고민있어요
HttpExchangeRepository가 없을 경우
- 1
- 1
- 325
고민있어요
build 정보가 안 나오는 경우
- 0
- 1
- 276
질문&답변
사용자 정의 리포지토리에서 변경이 일어나는 경우 @Transactional을 붙여줘야 하나요?
에러 메세지는 다음과 같습니다. Executing an update/delete query; nested exception is javax.persistence.TransactionRequiredException: Executing an update/delete query jpql로 변경을 처리한 경우에는 말씀하신 것처럼 repository 계층에서 따로 @Transactional을 붙여주지 않아도 잘 동작합니다. native query를 이용한 부분에서만 위 에러가 발생하고 있습니다.
- 0
- 5
- 828
질문&답변
사용자 정의 리포지토리에서 변경이 일어나는 경우 @Transactional을 붙여줘야 하나요?
빠른 답변 감사드립니다. 분명히 서비스 계층에서 붙여줬었는데도 불구하고 에러가 발생해서 Custom Repository 메소드에도 추가로 @Transactional을 붙여줬었습니다. - 서비스 계층 코드 @Transactionalpublic void saveCallMessages(String senderIp, String cid, List messages) { ... callMessageRepository.bulkInsert(callMessages);} - Repository 계층 코드 @Override@Transactionalpublic int bulkInsert(List messages) { StringBuilder sb = new StringBuilder("insert into call_messages ( ... ) values "); ... em.createNativeQuery(sb.toString()).executeUpdate(); return messages.size();} 에러 메세지를 복사해 놓았어야 했는데 죄송합니다ㅜㅜ
- 0
- 5
- 828
질문&답변
@GeneratedValue(IDENTITY) 타입의 Id를 가진 엔티티의 Bulk Insert는 불가능한가요?
답변 감사합니다. 우선은 pk를 수동생성으로 바꾸고 네이티브 쿼리로 해결해 놨었는데, insert select도 찾아봐야겠습니다.
- 0
- 2
- 244
질문&답변
Entity에 로직을 구현하는 경우의 고민입니다.
빠르고 명쾌한 대답 감사합니다~!
- 0
- 9
- 314
질문&답변
Entity에 로직을 구현하는 경우의 고민입니다.
추가 질문이 있습니다. getMembers().forEach( m.leaveTeam() ) 같은 경우를 Bulk update를 하고 싶으면, 결국 이 부분은 로직에서 빠지고 외부에서 별도로 처리를 해야 할까요? JPA로 가면서 DDD까지 공부가 필요해지는 것 같아서 어려운 부분도 있네요ㅎㅎ
- 0
- 9
- 314
질문&답변
Entity에 로직을 구현하는 경우의 고민입니다.
아~~ 그렇군요. 정확한 설명 감사합니다~!
- 0
- 9
- 314
질문&답변
Entity에 로직을 구현하는 경우의 고민입니다.
아, 그러면 Team에서 getMembers().forEach로 돌려도 그 Member들의 영속성 컨텍스트 객체를 얻어오고, changeTeam으로 값 변경이 가능한건가요? 잘 이해하면서 따라왔다고 생각했는데 또 헷갈리네요. Team의 members는 mappedBy라고 가정했을 때, 읽기만 가능한거라고 이해했었거든요.
- 0
- 9
- 314
질문&답변
Entity에 로직을 구현하는 경우의 고민입니다.
다른 질문을 여기에 이어서 하고자 합니다. Member -> Team 단방향 N:1 관계라고 가정하고, Team에서 해당 팀을 비활성화하는 disable()이라는 메소드를 만들고자 합니다. 이 때, 팀원 Member들의 team을 모두 null로 변경하고자 하는데, 로직 처리를 어디서 어떻게 하는 것이 좋은 구조인지 궁금합니다. 양방향 관계로 바꾼다고 해도 Team은 연관관계의 주인이 아니기 때문에, Team의 getMembers()를 iteration하면서 member.changeTeam(null)을 하는건 맞지 않을 것 같습니다.
- 0
- 9
- 314