목록2025/05 (3)
멍두의 개발새발

JPA에서 NOTNULL 속성을 둘 중에 어떤 어노테이션으로 관리해야할지 고민이 있었다. 둘을 공부해보자!@NotNull@Jakarata.validation의 어노테이션이다.하지만 Entity의 column에 달려있으면 hibernate가 인식하여 NotNull을 DDL에도 반영해준다.이때 NotNull을 DDL에 추가해주는 것은 JPA의 기본 동작이 아닌, hibernate의 작동 방식임@Column(nullable = false)jakarta.persistence의 어노테이션이다.database column의 null 속성을 지정해주는 어노테이션으로 기본은 true이다.@Column(nullable = false) vs @NotNull공통점DDL에 NOT NULL을 넣어준다.Null을 넣으려고 하면 ..

Entity를 사용하다보면, Table이나 Column명이 Database와 불일치하여 name=''으로 정의를 해주어야하는 경우가 있다. 그렇다면 hibernate가 자동으로 명명해주는 이름과 Table이나 Colum의 이름이 동일할 때도 name을 정의해주어야할까? 일단 @Column, @Table, @Entity의 name 속성을 정의하면 어떤일이 발생하는지 다시 한번 짚고 넘어가자. @ColumnColumn의 속성들을 지정해주는 어노테이션 name 지정 시, DB column명과 매핑해주는 어노테이션 (create 사용 시DDL에서도 사용)없다면 필드명을 통해 자동 생성된 컬럼명으로 매핑이 된다.@Tablename 지정 시, DB Table명과 매핑해주는 어노테이션 (create 사용 시 D..

@TableDB에 지정되는 Table의 이름 @EntityEntity로 관리name을 지정해주면 JPQL에서 해당 명으로 사용할 수 있음참고 : [JPA] Entity에서 @Table, @Entity, @Column의 name을 정의해주어야할까? @IdPrimaryTable의 PrimaryKey를 지정해준다 @GeneratedValueprimary 생성 전략 제공@Id에 @GeneratedValue 없으면 insert할 때 반드시 id도 직접 넣어주어야함이름종류기능startegyAUTO(default)JPA가 알아서 DBMS에 따라 하위 4가지 전략중 택 1 TABLE@TableGenerator로 함께 쓰인다. 모든 DBMS에서 사용가능하지만 ID가 필요할 때마다 select, update를 해야하고 L..