【发布时间】:2017-11-13 19:21:25
【问题描述】:
我有一个用户类
@Entity(name = "users")
@Table(name = "users")
public class User implements UserDetails {
static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "user_id", nullable = false)
private Long id;
@Column(name = "username", nullable = false, unique = true)
private String username;
@Column(name = "password", nullable = false)
private String password;
}
绑定到一个简单的存储库
public interface UserRepository extends PagingAndSortingRepository<User, Long> {
}
我有一个具有嵌套用户对象的 Instructor 类
@Entity
@Table(name = "instructors")
public class Instructor {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "instructor_id", nullable = false, updatable = false)
private Long id;
@OneToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "user_id")
private User user;
@OneToMany(fetch = FetchType.EAGER)
@JoinColumn(name = "course_id")
private List<Course> courses;
}
它与以下存储库一起保存
public interface InstructorRepository extends PagingAndSortingRepository<Instructor, Long> {
}
我发布的 JSON
{
"user": {
"id": 1
}
}
当我尝试对 POST 执行 /instructors 时。用户进入空。我是否缺少让 JPA 将两者联系在一起的东西?我尝试将CascadeType.ALL 添加到该字段中,但这只会引发分离的持久异常。
【问题讨论】:
-
所以你的关系是多个讲师与一个用户?您坚持哪一个用户或讲师有任何代码吗?
-
抱歉,我尝试了很多不同的方法,看看有什么效果。应该是一对一的。我已经进行了更改并发布了回购代码。
-
发布您要发布的 JSON。
-
@AlanHay 我已附上 JSON
标签: java spring jpa spring-data spring-data-rest