본문 바로가기
반응형

Spring Framework36

JPA 조회 시 Between 사용방법 정리 이미지와 같은 Sample 테이블에서 JPA를 이용하여 조회 시 SELECT * FROM SAMPLE WHERE AGE BETWEEN 20 AND 25 와 같이 age가 20~25 사이인 값을 뽑아오려고 하는데 Repository로 이동한 뒤 findByAgeBetween(Long startAge, Long endAge) findBy컬럼명Between(start, end) 위와 같은 메소드를 사용해주면 되는데 실제 적용시에는 컬럼명 부분만 변경해주면 된다 sampleRepository.findByAgeBetween(20L, 25L) [Sample(id=1, name=철수, gender=M, age=20, createdDate=null, updatedDate=null) , Sample(id=2, name=.. 2022. 8. 14.
JPA WHERE AND OR 사용방법 정리 JPA에서 위 이미지의 테이블 Sample을 가지고 WHERE AND, OR 조건을 적용해서 조회하려고 하는데 먼저 SELECT * FROM WHERE GENDER = 'W' AND AGE = 25 인 항목을 조회하려면 Repository에 아래와 같이 findByGenderAndAge(String gender, Long age) ( findBy컬럼명And컬럼명 ) And컬럼명을 추가하는 식으로 메소드를 작성한다 sampleRepository.findByGenderAndAge("W", 25L) [Sample(id=3, name=영희, gender=W, age=25, createdDate=null, updatedDate=null)] 메소드를 작성한 뒤 호출해보면 gender가 W면서 age가 25인 항목만.. 2022. 8. 14.
JPA 특정 컬럼 값 조건으로 조회하는 방법 이미지와 같은 Sample 테이블을 가지고 JPA에서 gender 컬럼 값을 가지고 조회 결과를 얻으려 하는데 Query로 보자면 SELECT * FROM SAMPLE WHERE GENDER = '값' 이런 식이 되겠다 여기서 @Query를 사용해줄 필요 없이 Repository에서 findBy컬럼명 만으로도 조회 조건을 걸어 가져올 수 있는데 public interface SampleRepository extends JpaRepository { public Sample findByGender(String gender); } 위 코드 예제를 보면 findByGender(String 값); 이렇게 메소드를 만들어주면 끝인데 주의할 점은 findBy컬럼명 이 Entity에 작성한 컬럼명과 일치해야 한다는 것.. 2022. 8. 14.
JPA 테이블 생성 시 컬럼 순서 자동 변경 방지방법 JPA에서 ddl-auto를 사용해서 시작과 동시에 자동으로 테이블 생성 시 Entity 에서 순서대로 입력한 컬럼 순서대로가 아니라 a~z 순서대로 컬럼이 삽입되게 되는데 이 순서를 지정할 수 없기 때문에 운영에서는 절대로 적용하면 안되고 Local 에서 테스트 용도로 사용할 경우에는 그냥 이상하게 깔리는 대로 사용해야 한다 그래도 Entity에 작성한 Column 순서대로 사용하려면 application.properties 파일을 연 뒤 spring.jpa.hibernate.ddl-auto=none 위 옵션을 추가해서 자동 생성을 막아주고 DB에서 수동으로 테이블을 생성해서 사용하거나 혹은 테이블 생성 시 schema.sql 파일을 통해 테이블을 생성시킨 뒤 사용해주면 된다 2022. 8. 11.
JPA Entity Column CamelCase로 생성하는 방법 JPA에서 @Entity 클래스 안에 컬럼명을 testName 같은 CamelCase로 지정해도 스프링을 실행하며 테이블 생성 시 컬럼명이 test_name 같은 snake_case로 생성되는 경우가 있는데 hibernate의 기본 옵션이 이렇기 때문에 application.properties 파일로 이동한 후 spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl 위 내용을 복사 붙여넣기 해 주면 hibernate 기본 옵션을 따르지 않고 내가 Entity에 설정한 컬럼명을 따라가게 된다 2022. 8. 11.
JPA @CreatedDate @LastModifiedDate NULL 들어가는 경우 해결방법 JPA에서 @CreatedDate @LastModifiedDate 어노테이션을 사용하는 경우 각각 Insert 시 / Insert, Update 시 현재 시간이 들어가게 되는데 두 어노테이션을 사용해도 테이블에 Insert / Update 시 NULL이 들어올 경우에는 다음과 같은 부분을 고쳐주면 되는데 1. Application 클래스에 @EnableJpaAuditing 어노테이션 삽입 - Application 클래스란 메인 메소드가 들어있는 클래스를 말한다 2. Entity 클래스에 @EntityListeners(AuditingEntityListener.class) 어노테이션 삽입 - @CreatedDate @LastModifiedDate 어노테이션을 단 Column을 다른 클래스에서 extends로.. 2022. 8. 10.

반응형