JPA

    [JPA] column default value 넣기

    [JPA] column default value 넣기

    목표: JPA를 통해 엔티티를 save 할 때, 특정 필드에 따로 값을 넣지 않아도 default value가 저장되도록 설정하자. 타겟 컬럼: usage_status → 해당 데이터에 대한 사용 여부 (YES or NO) @ColumnDefault @Getter @NoArgsConstructor(access = AccessLevel.PROTECTED) @Entity @Table(name = "users") public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "user_id", nullable = false)\ private Long id; @Column(nullable = false) priv..

    [Spring] Spring Data JPA의 페이징

    인자 타입 - Pageable findAll()과 같이 컬렉션 조회를 하게 되면 페이징이 필요할 때가 있다. 페이징을 위해서는 기본적으로 몇 번째 페이지인지에 대한 정보와(page) 한 페이지당 보여줄 데이터의 개수가(size) 필요하다. Spring Data JPA는 이러한 정보를 위해 Pageable 인터페이스를 사용한다. @GetMapping public ResponseEntity page(@RequestParam int page, @RequestParam int size) { Pageable pageable = PageRequest.of(page, size); Page members = memberRepository.findAll(pageable); return new ResponseEntity(..

    [Spring] PostgreSQL - PostGIS, JPA를 통해 공간 데이터 다루기

    [Spring] PostgreSQL - PostGIS, JPA를 통해 공간 데이터 다루기

    데이터베이스에 숫자, 문자열이 아닌 점, 선, 면 등의 정보를 담아야 할 때, 주로 공간 데이터를 사용한다. 본 포스팅에서는 Spring + JPA 환경에서 PostgreSQL의 extension인 PostGIS를 통해 공간 데이터를 다루는 방법을 알아보겠다. PostGIS의 도입 배경과 설치 과정은 아래 글을 참고하자. 2023.01.11 - [database] - [Postgresql] PostGIS 설치 - MySQL이 아닌 PostgreSQL을 사용하는 이유 [Postgresql] PostGIS 설치 - MySQL이 아닌 PostgreSQL을 사용하는 이유 배경 프로젝트 도중 공간 데이터를 다룰 일이 있었다. 나는 주로 MySQL을 사용하기 때문에 처음에는 MySQL이 지원하는 공간 데이터 타입(..

    [Spring] JPA 연관관계 - ID 만 사용해서 save

    [Spring] JPA 연관관계 - ID 만 사용해서 save

    다대일 연관관계를 맺고 있는 두 엔티티가 있다고 하자. @Getter @NoArgsConstructor(access = AccessLevel.PROTECTED) @Entity public class Member { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "team_id") private Team team; public Member(Team team) { this.team = team; } } @Getter @NoArgsConstructor(access = AccessLevel.PROTECTED) @Entity publi..