개발/Spring

[Spring] JPA join 객체 null 체크를 해야하나?

hojak99 2018. 8. 23. 11:57

Entity 클래스에 다음과 같은 코드가 있다고 하자.


public class Company {
    @Column("seq")
    private Integer seq;

    ...

    @OneToMany(cascade = {CascadeType.PERSIST}, fetch = FetchType.LAZY, mappedBy = "user")
    @JoinColumn(name = "seq") 
    private User user;
}


그리고 Service 클래스에는 다음과 같은 코드가 있다.



Company company = companyRepository.findBySeq(5);

if (company.getUser() == null) {
   throw new IllegalArgumentException("no user data");
}

...


Service 클래스의 코드에서 과연 null 체크가 필요할까?


결론적으로 Service 클래스에서 해당 join 한 객체에 대해서는 null 체크를 명시적으로 할 필요가 없다. 


우선 lazy loading 이기 때문에 getUser() 를 할 시에 null 이면 hibernate 에서 exception 을 낸다고 하드라.


그래서 따로 null 처리는 안해도 되고 try-catch 를 해야할 듯 하다.

반응형