주말이라 하기 싫어서 몸부림 치는 중,,
쿼리 결과를 RowMapper를 이용해 Member 객체로 받아서 리스트에 넣는다.
rowNum 만큼 람다식을 반복한다.
매 행에 대해 이름과 id를 받아서, Member 객체에 담아 리턴한다.
람다를 진짜 공부해야겠다..
쿼리 마저 개발자가 작성할 필요가 없다.
ORM: Object Relational Mapping. 객체와 관계형 디비 자동으로 매핑해 주는 것.
원래 JPA는 테이블까지 알아서 만들어주는데, 우리는 이미 테이블이 있어서 spring.jpa.hibernate.ddl-auto=none
을 사용하고, 만약 기능을 사용하고 싶다면 create
로 하면됨.
이 클래스가 Entity임을 알려주고, 각각 어노테이션을 달아준다.
id의 경우, Primary key니까, @Id
를 달고, 값이 자동으로 디비에서 생성되기 때문에 @GeneratedValue(strategy = GenerationType.IDENTITY)
라고 해준다.
다른 컬럼의 경우, @Column(name="컬럼명")
으로 해준다. 객체의 필드값 이름과 컬럼명이 동일할 필요는 없는 것 같당!
EntityManager
save나 primary key 검색은 매우 단순하게 할 수 있다.
다른 컬럼으로 검색하거나, 전체를 가져오려면 JPQL이라는 것을 이용해야한다. JPQL은 결과로 행이 아니라 객체 자체를 리턴한다. 여기서는 Member 객체들이 리턴되고, 이를 리스트로 받는다.
삽입, 수정을 위해서는 @Transactional
어노테이션이 필요하다. 클래스에 해도 되고, 특정 함수에 걸어도 됨.
EntityManager 사용을 위해 만들고, 생성자에서 초기화 해준다.
MempryRepository에 JpaMemberRepository 연결!! (와 인터페이스 짱이다 진짜 인터페이스,,와,,자바,,와,,객체지향,,와,,,)
테스트 돌리면 잘 돌아간당!!
아침에 묵렴 사이렌 소리에 깨서 "불났나...? 대피해야되나...? 전쟁인가...?" 하다가 현충일인거 깨닫고ㅜㅜ 감사합니다,,, 하면서 다시 잤다.. 그러구 <마션>을 다 읽어버리고!! 낮잠도 자고 푹 쉬다 랩실에 갔는데. 그럼에도 불구하고 집중이 안됐다 ㅎㅎㅎㅎ
그냥 마션 영화나 볼걸 ㅋㅋㅋ 내일 인프런 자바 끝내버릴 수 있을까? 하지만 내일은 학원에 가는 날이지,, cs231n도 마저 듣고,, 이번주는 gdsc 자소서도 써야한다 븨지븨지~