Entitiy NotNull 문제 해결

Crow·2022년 12월 29일
0
post-custom-banner

project 빌드시나 실행시 warning: @NotNull is meaningless on a primitive. 해당 문구로 경고가 뜸

@NotNull is meaningless 즉 NotNull이라는 어노테이션이 쓰는 의미가 없다뜻이며

그 이유는 내가 사용한 @NotNull annotation은 @com.sun.istack.NotNull을 사용하고 있어서 JPA Entity 클래스에서 동작하지 않는 annotation이었다

제대로 컬럼에 NotNull처리하기 위해서 필요한건 @javax.validation.constraints.NotNull 이 어노테이션이었다

당연하게도 이걸 사용하려면 build.gradle에 의존성을 추가해줘야한다

build.gradle

dependencies {
    // @NotNull 이슈 해결위해 추가 의존성
    implementation 'org.hibernate:hibernate-validator:7.0.5.Final'
    }
package io.web.chewing.Entity;


import com.sun.istack.NotNull;
...

@Entity
@Builder
@DynamicInsert
@AllArgsConstructor
@NoArgsConstructor
@Getter
@Table
public class Member extends BaseEntity implements Serializable {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    @Column(nullable = false, unique = true)
    private String email;

    private String name;

    @Column(nullable = false, unique = true)
    private String nickname;

    @NotNull
    private String password;

    @NotNull
    private String provider;

	...
}

이 코드에서 import부분에 import com.sun.istack.NotNull;에서

import org.hibernate.annotations.ColumnDefault;
...

import org.hibernate.annotations.ColumnDefault; 어노테이션으로 바꿔주면 된다


이건 사실 개발 초기부터 있던 엄청 간단한 문제였지만 그때 당시엔 이걸 픽스하는 시간보다 다른걸 먼저 하는게 더 가치가 높다고 판단해서 지금 고치는 문제다

제일 좋은건 이런 문제를 만들지 않는거지만 그건 지금 내 상황에 불가능해 보이니까 최대한 조심해야겠다.

profile
어제보다 개발 더 잘하기 / 많이 듣고 핵심만 정리해서 말하기 / 도망가지 말기 / 깃허브 위키 내용 가져오기
post-custom-banner

0개의 댓글