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에 의존성을 추가해줘야한다
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;
어노테이션으로 바꿔주면 된다
이건 사실 개발 초기부터 있던 엄청 간단한 문제였지만 그때 당시엔 이걸 픽스하는 시간보다 다른걸 먼저 하는게 더 가치가 높다고 판단해서 지금 고치는 문제다
제일 좋은건 이런 문제를 만들지 않는거지만 그건 지금 내 상황에 불가능해 보이니까 최대한 조심해야겠다.