Backend/JPA

[ERROR] org.hibernate.AssertionFailure: null identifier

Mev01 2021. 9. 20. 17:10
@Entity
@Getter
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class UserProfile {
	@Id
	private String uid;

	@Column(nullable = false, length = 256)
	private String filePath;
	
	@Column(nullable = false, length = 12)
	private String nickname;

	@Column(nullable = false)
	private boolean hasSurveyed;

	@OneToOne
	@MapsId
	@JoinColumn(name = "uuid")
	private UserAuth userAuth;
}
UserProfile userProfile = UserProfile.builder()
                          .uid(uid)
                          .filePath("default")
                          .nickname("aaa")
                          .hasSurveyed(false)
                          .userAuth(mappingUserAuth)
                          .build();

memberProfileDao.save(userProfile);

위와 같은 엔티티에 값을 insert 하는 과정에서 에러가 발생하였습니다.

 

다음은 에러 전문입니다.

2021-09-20 15:32:50.541 ERROR 27804 --- [nio-8080-exec-1] org.hibernate.AssertionFailure : HHH000099: an assertion failure occurred (this may indicate a bug in Hibernate, but is more likely due to unsafe use of the session): org.hibernate.AssertionFailure: null identifier

 

 

해결 과정


UserProfile userProfile = UserProfile.builder()
				.filePath("default")
				.nickname("aaa")
				.hasSurveyed(false)
				.userAuth(mappingUserAuth)
				.build();

		memberProfileDao.save(userProfile);

위와 같이 uid를 설정하는 코드를 빼니 문제가 해결되었습니다.

@MapsId를 통해 FK를 PK에 매핑하는 데 다시 uid를 지정해줘서 문제가 생겼을 거라고 생각합니다.

 

더 공부할 필요가 있을거 같습니다.

 

 

'Backend > JPA' 카테고리의 다른 글

PK를 공유하는 OneToOne 식별관계 entity 만들기  (0) 2021.09.20