FastCampus - 한번에 끝내는 Java|Spring 웹 개발/04 JPA (28) 썸네일형 리스트형 JPA Ch 5 Entity Listener - 패스트캠퍼스 챌린지 24일차 이번 내용은 Entity 의 변경사항이 있을 때 뭔가를 할 수 있는 엔티티 이벤트 리스너입니다. 강의 진행은 두 실습 중 하나만... 2배속으로 들어도 30분이면 중간에 멈추고 다시보고 본 내용 정리까지 하면 길어요. 이런 저런 이유로 앞에거만. 방법은 두 가지입니다. 엔티티에 직접 달기 (어노테이션을 단 메서드로) 별도의 클래스로 만들고 어노테이션으로 엔티티에 붙이기 방법 자체는 위에랑 똑같은데, 정의하는 클래스가 바뀌고, 패러미터로 대상 클래스 (Object o) 가 추가됩니다. 엔티티 리스너 어노테이션들 조합식으로... 이름부터가 조합 방식으로 구성됩니다. 시점: Pre / Post, 작업: Persist / Update / Delete / Load 시점 + 작업 순으로 이름이 정해지는데 Load .. JPA Ch 4 Entity 기본 어노테이션들 - 패스트캠퍼스 챌린지 23일차 앞서 @Entity User 를 정의하면서 @Entity 와 @Id, @GeneratedValue 를 사용했었습니다. 엔티티를 정의하는 데에는 이 세 가지 외에도 더 다양한 어노테이션이 있습니다. 이전에는 기본값만으로도 충분해서 사용하지 않았던 그 어노테이션들을 살펴보는 시간이 되시겠습니다. @Entity, @Id skip >> @GeneratedValue (*필드) 이 필드가 생성된 값이라는 걸 나타내는 어노테이션으로, @Id 와 함께 썼었습니다. strategy 라는 값이 있습니다. enum GenerationType 4가지 중 하나의 값인데, 기본값은 AUTO 입니다. TABLE - 별도의 테이블을 만들어 ID 생성을 관리합니다. (잘 안 쓰임) SEQUENCE - DB가 제공하는 특수한 객체를 사.. JPA Ch 3 Query Method 소팅 / 페이징 - 패스트캠퍼스 챌린지 22일차 쿼리 메소드의 남은 강의 두 개입니다. 정렬과 페이징이 되시겠습니다. 이번에도 메서드의 이름 규칙을 좀 더 배우지만, 추가로 패러미러를 넣는 방법도 배웁니다. OrderBy(프로퍼티_이름)(Desc|Asc) 쿼리 메소드에서 정렬을 하려면 정렬 기준 프로퍼티를 포함하여 OrderBy 를 넣습니다. 잊지 마세요, 정렬 기준 프로퍼티를 꼭 넣어야 합니다. 정렬 순서 표시는 끝에 Desc 혹은 Asc 를 붙이면 되는데, 흔하죠? (내림차순, 오름차순의 약어) 쿼리는 order by 구문이 들어갑니다. // First 대신 Top fun findTop1ByNameOrderByIdDesc(name: String): User? // order by desc // 1 생략 가능 fun findTopByNameOrder.. JPA Ch 3 Query Method (2~3) - 패스트캠퍼스 챌린지 21일차 어제에 이어서 기본실습 2 (1, 2) 입니다. 추가적으로 메소드를 뭘 더 만들수 있는지 보는 것 외에는 따로 유의미한 걸 진행하지는 않았습니다. 쿼리 메소드라는게 뭘 쓸 수 있을지 알아야지 쓸 수 있는거니까 그게 중요하긴 하겠죠??? And / Or List findByEmailAndName(String email, String name) 직관적입니다. And 와 Or 로 데이터의 여러 필드를 조건으로 걸어서 검색할 수 있습니다. 쿼리의 where 절에 해당 조건이 들어갑니다. 딱 하나 궁금했던 부분은 And와 Or 을 여러번 쓰면 어떻게 되나였는데, 쿼리에 그대로 나오더군요... fun findByNameAndIdOrEmail(name: String, id: Long, email: String): U.. JPA Ch 3 Query Method (1) - 패스트캠퍼스 챌린지 20일차 오늘은 의욕이 별로 안 나는 날이라 강의는 하나만 나가기로 했습니다. 그런데 웬걸 결국 더 찾아보게 되던... 다만 더 찾아본 거에 비하면 큰 소득은 없었습니다. Query Method interface 로 정의했던 MyRepository 에 신기하게도 특정 규칙에 맞춰서 메소드를 정의하기만 하면, 신기하게도 (짜잔!) 함수 본문이 없는데도 메소드의 이름 대로 동작합니다. 이게 Query Method 입니다. 강사님 말씀하시길, 적은 노력으로도 손쉽게 짤 수 있다고 (가성비가 좋다는 얘기죠). 규칙은 레퍼런스 문서를 참조하시면 되구요. 여기에서 사용 가능한 패턴이나 반환형 등을 살펴보실 수 있습니다. https://docs.spring.io/spring-data/jpa/docs/current/refere.. JPA Ch 2 SprDatJPA 기초 (2) - 패스트캠퍼스 챌린지 19일차 어제에 이어서 실습을 마저 해보고, 하는 김에 소스도 좀 같이 파봅니다. 요점 성능차이가 있는 API들을 조심하라: deleteAllById 와 deleteAll( 엔티티 목록 ) 등 QueryExampleMatcher 는 추가된지도 얼마 안 됐지만 잘 사용되지 않으니 어떻게 쓰는지만 알아보고 넘어가기 보통 나중에 배울 Query DSL 을 쓴다 (이런 게 있으면서 나중에 가르쳐준다구요?) Spring Data JPA에 편리한 페이징 객체가 있다 소스를 좀 파보면 배우는 게 많다 ("요즘 트렌드가 깔끔한 코드이기도 하고") save 함수는 ID 조회로 update를 할지 create를 할지 결정한다 (소스 파봄) 오늘은 샘플 위주여서 스크롤이 좀 깁니다. 스크롤만 기니까... save 후 flush vs.. JPA Ch 2 SprDatJPA 기초 - 패스트캠퍼스 챌린지 18일차 기초 맛보기 가즈아 글 한 번 날려먹음. 나 좀 지금 당황스러운게 자동저장도 없고 글은 과거버전이네요... 뭐 어쩌겠어요 복구해야죠... 현실부정이다 현실부정이야 글 돌아와 ㅠㅠ 그래서 글이 좀 담백할거니 이해 부탁드립니다. 쉬익 쉬익 왜 날아갔는지 알았어 이미지랑 아래 필수내용 박스를 같이 복붙해서 이미지가 없는 거 취급받아서 뭔가 버그를 자극한거야 Spring Data JPA 를 처음 실제로 사용해보는 만큼, Entity 와 Repository 를 만들고 여러 API로 조회해보는 거까지 진행합니다. 생각보다 강의가 깁니다. 실습이 두 파트인데 결국 다 진행 못 하고 중간까지만 진행함 Entity / Repository 만들기 엔티티와 리포지터리를 만들어봅니다. Entity 클래스에 @Entity p... JPA Ch 1 인트로 - 패스트캠퍼스 챌린지 17일차 La lekcio de hodiau estas pri la JPA, kiu estas necese por programado per la spring programframo. (파파고에 돌리지 마세요. 파파고는 지 이름이 에스페란토이면서도 에스페란토는 번역 못 해요.) 이전에 보던 Spring 실습 섹션은 아무래도 뒤에 나올 내용이 뻔해보여서 스킵했습니다. 실질적으로 돌아가는 앱을 만드려면 데이터베이스는 필수이니까, 차라리 강의를 마저 보기 위해 시간을 보내는 것보다는 JPA를 하루라도 빨리 (마음 너무 급해...) 배우는 게 낫겠다고 생각했거든요. 인트로만 진행하는 것도 꽤나 시간이 들어가서 이번에는 앞으로 강의를 진행하면서 사용할 샘플 프로젝트만 만들어볼 예정입니다. 실제로 강의에서도 그것만 진행했구.. 이전 1 2 3 다음