문서의 선택한 두 판 사이의 차이를 보여줍니다.
| 양쪽 이전 판 이전 판 다음 판 | 이전 판 | ||
|
springframework:spring_data_jdbc [2022/01/21 22:07] kwon37xi [AbstractJdbcConfiguration] |
springframework:spring_data_jdbc [2023/09/15 19:50] (현재) kwon37xi |
||
|---|---|---|---|
| 줄 1: | 줄 1: | ||
| ====== Spring Data JDBC ====== | ====== Spring Data JDBC ====== | ||
| * [[https:// | * [[https:// | ||
| + | * https:// | ||
| * [[https:// | * [[https:// | ||
| + | * [[springframework: | ||
| + | ===== 가장 큰 특징 ===== | ||
| + | * Entity 가 proxy 객체가 아닌 POJO 이기 때문에, proxy 일 때 발생하는 숨은 동작들이 발생하지 않는다. | ||
| + | * 이 특징을 잘 활용하면 side effect 없이 다양한 시도를 할 수 있다. | ||
| ===== JdbcAggregateTemplate ===== | ===== JdbcAggregateTemplate ===== | ||
| 줄 20: | 줄 25: | ||
| * [[https:// | * [[https:// | ||
| - | ===== Bidirectional ===== | + | ===== Bidirectional |
| - | * 원칙적으로 지원 안함. | + | ==== internal ==== |
| * [[https:// | * [[https:// | ||
| - | * | + | * [[https:// |
| + | * DB 데이터를 읽을 때 생성자에서 '' | ||
| + | |||
| + | ==== external ==== | ||
| + | * 이런 방법 보다는 그냥 [[https:// | ||
| + | |||
| + | |||
| + | ===== Caching ===== | ||
| + | * Spring Data JDBC는 Cache를 지원하지 않는다. | ||
| + | * 필요하다면 [[springframework: | ||
| + | |||
| + | ===== Eager Loading ===== | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * 어차피 조회한 엔티티가 proxy가 아니라서 별다른 side effect 없이 View 객체 사용가능. | ||
| + | |||
| + | <code java> | ||
| + | class MinionView extends Minion { | ||
| + | MinionView(String name, AggregateReference< | ||
| + | super(name, evilMaster); | ||
| + | } | ||
| + | |||
| + | @Embedded(onEmpty = Embedded.OnEmpty.USE_EMPTY, | ||
| + | Person master; | ||
| + | } | ||
| + | |||
| + | // join 해서 MinionView에 값을 넣는 Repository 쿼리 | ||
| + | @Query(" | ||
| + | " | ||
| + | "from minion m join person p on p.id = m.evil_master" | ||
| + | List< | ||
| + | </ | ||
| + | |||
| ===== 참조 ===== | ===== 참조 ===== | ||
| * [[https:// | * [[https:// | ||
| 줄 37: | 줄 75: | ||
| * https:// | * https:// | ||
| * [[https:// | * [[https:// | ||
| + | * [[https:// | ||
| + | * 2022현재 multiple datasource 지정 안됨 | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||