【发布时间】:2017-03-22 23:16:10
【问题描述】:
所以我的用户有一个位置,例如:
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "location_id")
private Location location = new Location();
位置表有:
@OneToMany(mappedBy="location", cascade=CascadeType.ALL)
private Set<User> userSet = new HashSet<User>();
只是在用户表调用中运行一个简单的插入 我一直遇到这个错误:
Hibernate: insert into users (createdAt, email, firstName, gender, hashedPassword, lastName, location_id, type, updatedAt) values (?, ?, ?, ?, ?, ?, ?, ?, ?)
Mar 22, 2017 3:06:57 PM org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions
WARN: SQL Error: 0, SQLState: 23502
Mar 22, 2017 3:06:57 PM org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions
ERROR: ERROR: null value in column "location_id" violates not-null constraint
Detail: Failing row contains (1, 2017-03-22 15:06:53.832, ankitv@uci.edu, ankit, null, turende, verma, 3, null, null).
2017-03-22 15:06:57.822:WARN::/bemh/medhuddleapi/userInfo/insertUser
org.hibernate.exception.ConstraintViolationException: could not execute statement
请有任何建议..
【问题讨论】:
-
可以通过显示 Location 的构造函数来改进问题,因为它是在显示的代码中直接调用的。 User.location 和 Location.userSet 的相关 getter 和 setter 也可能有所帮助。与 Location.id 属性上的注释相同。
-
stackoverflow.com/questions/42327971/… 也是相关的。那里的答案和 cmets 可能会有所帮助。
标签: hibernate