주소와 함께 사용자 개체를 저장하려고했습니다. User
클래스 안에는 Address
과의 관계가 정의되어 있습니다. 안에 Address
, 나는 User
을 정의했다. 다음과 같은 오류 객체를 생성하고 데이터베이스에 저장하려고하면 얻을중첩 된 관계 엔티티에서 Null 값 전달 - 스프링 부트
:
SqlExceptionHelper : ERROR: null value in column "user_id" violates not-null constraint
@Entity
class Address {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
private String address;
@ManyToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "user_id")
private User user;
//getter setter
}
사용자 클래스를;
class User implements UserDetails {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
@OneToMany(cascade = CascadeType.ALL)
private List<Address> address;
//Other fields, getters, & setters
}
UserService 클래스;
class UserService {
public long createUser(User user) {
User u = new User();
Address address = new Address();
address.setAddress("Windsong Palace");
address.setZipCode("239749");
List<Address> adds = new ArrayList<>();
adds.add(address);
u.setAddress(adds);
//userRepository is the interface extends from JpaRepository<User, Long>
userRepository.save(u);
}
}
어떻게 Address
클래스에 생성 된 후 user_id
를 전달하는 방법?
사용자를 영속화 할 때 관련 주소 개체와 관계를 유지해야합니다. 그리고 지금까지 엔티티 매핑이 잘 보입니다. 너는 무엇을 놓치고 있니? 무슨 일 이니? –
나는 liquibase가 문제를 일으킨다는 것을 몰랐다. 나는 liquibase를 사용할 때, 나는 그 문제를 해결했다. – mubeen
great. 다른 사람들이 혼동하지 않도록이 결과에 대한 자신의 질문에 답하면 더 좋습니다. –