Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

SQL문으로 처리하고 싶으면, 앞장에서 배운 @Query 어노테이션을 통해 쿼리문 수행이 가능합니다.



뷰와 서브쿼리

데이터 베이스를 사용하다보면, 자주 사용하는 Select문이 생기며 개발중에 읽기 전용으로 공유되어

같이 사용하기도 합니다. 이럴때 데이터베이스안에 직접 읽기전용 Select문을 관리할수 있는 기능이

View이며 데이터를 가지고 있지 않고 수정불가능한것이 Table과의 차이이며

그외 읽기용도의 구조로서는 Table과 동일하다고 생각하면 되겠습니다.

JPA에서는 변경불가능한 설정인 Immutable이라는 속성만 지정하며, 나머지는 TableEntity를 지정하는

방식과 동일합니다.



View 생성/정의View 조회
SQL

CREATE VIEW address_view AS
SELECT t.address_id ,t.name,t.phone_nbr FROM address t;

select * from address_view where name="민수79";
JPA

@Entity
@Immutable
public class AddressView {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "ADDRESS_ID", updatable = false, nullable = false)
private Integer id;

private String name;

private String phoneNbr;

public interface AddressViewRepo extends Repository<AddressView, Long>{
List<AddressView> findByName(String name);
}


Iterable<AddressView> userList = addressViewRepo.findByName("민수97");

==> addressViewRepo는 조회가능한 함수쿼리 작성만 가능합니다.