반응형
SpringBoot JPA는 @Transactional에서 .save()가 필요하지 않습니다.
짧은 질문이 있습니다.
필요합니까?repo.save(x)
방문하다@Transactional
방법?
저장되지 않은 상태에서 DB에 변경 내용이 표시되고 이에 대한 명확한 문서가 없기 때문에 물어봅니다.
그렇다면 의도한 대로 작동합니까? 아니면 예상치 못한(환영) 행동일 뿐입니까?
예:
@Autowired
private UserRepo repo;
@Transactional
@PutMapping
public Long put(@RequestBody User user)
{
User u = repo.findOne(user.getId());
u.setName("Paul");
repo.save(u); // DO I NEED THIS LINE?
}
그냥 확신이 안 서요. 그러니 누군가 이 주제에 대해 좀 밝혀줄 수 있을까요?
엔티티를 취득하는 경우(예:findOne
트랜잭션 메서드 내의 메서드 호출은 지속성 공급자에 의해 그 시점부터 관리됩니다.
트랜잭션 커밋 시 해당 엔티티(실제 프록시 오브젝트)에 변경을 가한 경우, 이러한 변경은 실행 여부에 관계없이 데이터베이스에 유지됩니다.save
또는update
방법들.
save
또는persist
는 새 엔티티를 처음부터 생성할 때 사용되어야 하며 지속성 공급자가 엔티티의 존재를 아직 모를 때 사용해야 합니다.
커밋 시 변경되는 것을 방지할 수 있습니다.detach
또는evict
메서드를 지정합니다.
언급URL : https://stackoverflow.com/questions/46708063/springboot-jpa-need-no-save-on-transactional
반응형
'programing' 카테고리의 다른 글
스프링 부트 show sql 파라미터 바인딩? (0) | 2023.03.05 |
---|---|
Oracle - FAST Refresh 및 JOINs를 사용하여 구체화된 뷰를 작성하는 방법 (0) | 2023.03.05 |
NextJS - 동적 경로에 쿼리 매개 변수 추가 (0) | 2023.02.28 |
TypeScript 오류: 유형 'ReactNode'에 'children' 속성이 없습니다. (0) | 2023.02.28 |
Oracle의 to_char() 함수에 공백이 추가되는 이유는 무엇입니까? (0) | 2023.02.28 |