我的用户类别如下
@Entity
@Table
public class User implements UserDetails {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
Long userId;
@Column(nullable = false)
String firstName;
@Column(nullable = false)
String lastName;
@Column(nullable = false, unique = true)
String email;
@Column
String mobile;
@Column(nullable = true)
String password;
@Column(nullable = false)
String role;
@Column(nullable = false)
boolean isAccountLocked;
@Column(nullable = false)
boolean isAccountDisabled;
@Column(nullable = false)
boolean isPasswordExipred;
@Column(nullable = false)
boolean isAccountExipred;
// Relations
@OneToOne(mappedBy = "user", cascade = CascadeType.ALL, fetch = FetchType.LAZY)
@JsonIgnore
UserPersonalDetails personalDetails;
// Relations
@OneToOne(mappedBy = "user", cascade = CascadeType.ALL, fetch = FetchType.LAZY)@JsonIgnore
StudentAcadmicsDetails studentAcadmicsDetails;
// getter setters
}
我的StudentAcadmicDetails类如下
@Entity
@Table
public class StudentAcadmicsDetails {
@Id
Long userId;
@PrimaryKeyJoinColumn
@OneToOne(cascade = CascadeType.ALL)
@OnDelete(action = OnDeleteAction.CASCADE)
@MapsId
User user;
String department;
Integer year;
String division;
String branch;
Integer semister;
// getter setters
}
下面是我的服务层代码
@Service
public class StudentAcadmicsService {
@Autowired
StudentAcadmicsDAO studentAcadmicsDAO;
@Autowired
UserService userService;
public StudentAcadmicsDetails saveStudentAcadmicsDetails(StudentAcadmicsDetails details) {
User user = userService.findById(details.getUser().getUserId());
details.setUser(user);
return studentAcadmicsDAO.save(details);
}
使用JpaRepository接口保存StudentAcadmicsDetails时出现以下错误。
org.hibernate.PersistentObjectException:分离的实体传递给 坚持:com.asset.app.user.User
如果有任何方法,我可以直接保存StudentAcadmicsDetails,而无需保存附加的用户对象。用户和StudentAcadmicsDetails之间的数据库映射应通过userId字段
进行解析