spring jpa
-
[Spring JPA] @Id와 @GeneratedValue - Primary Key 생성방법Spring/JPA 2021. 4. 2. 15:49
@Id는 해당 프로퍼티가 테이블의 주키(primary key) 역할을 한다는 것을 나타낸다. @GeneratedValue는 주키의 값을 위한 자동 생성 전략을 명시하는데 사용한다. Primary 키 생성 전략으로 JPA가 지원하는 것은 아래의 네 가지이다. 1. AUTO : (persistence provider가) 특정 DB에 맞게 자동 선택 데이터베이스 벤더에 의존하지 않고, 데이터베이스는 기본키를 할당하는 벙법 - 데이터베이스에 따라서 IDENTITY, SEQUENCE, TABLE 방법 중 하나를 자동으로 선택해주는 방법이다. - 예를들어, Oracle일 경우 SEQUENCE를 자동으로 선택해서 사용합니다. 따라서, 데이터베이스를 변경해도 코드를 수정할 필요가 없다. 2. IDENTITY : DB의..
-
[Spring JPA] jpa 사용하기 - JpaRepositorySpring/JPA 2021. 4. 2. 15:24
jpa 를 사용하려면 @Entity 클래스를 먼저 생성해야 한다. @Entity @NoArgsConstructor(access = AccessLevel.PROTECTED) @Table(name="coin.market_code") public class MarketCode { @Id @Column(name = "market_code") private String marketCode; @Column(name = "korean_name") private String koreanName; @Column(name = "english_name") private String englishName; @Builder public MarketCode(String marketCode, String koreanName, St..
-
[Spring JPA] Column으로 쓰지않는 변수에 대한 선언. @TransientSpring/JPA 2020. 9. 22. 17:20
엔티티 클래스로 등록한 클래스지만, DB 테이블과는 별도로 기능이(추가 필드나 메소드) 필요한 경우가 있다. 예를 들어 DB 테이블에는 존재하지 않지만, 엔티티 클래스에는 등록되어 같이 운용하는 경우가 있다. vo(엔티티) 에는 사용하지만 jpa 로 디비와 관련 없이 사용하고 싶을때!! 이럴 경우, DB 테이블에 간섭하지 않고, 엔티티 클래스 내부에서만 동작하게 하는 어노테이션을 사용한다. @Transient 어노테이션을 사용하는데, 이 어노테이션은 하이버네이트의 jpa 패키지에 위치하고 있다. @Transient 어노테이션을 사용한 필드나 메소드는 DB 테이블에 적용되지 않는다. @Entity public class Member { private Long memberId; private String p..