отдельная сущность передана для сохранения при сохранении дочерней сущности - PullRequest
0 голосов
/ 14 марта 2020

У меня есть класс пользователя, как показано ниже

@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);
}

Я получаю ниже ошибка при сохранении StudentAcadmicsDetails с использованием интерфейса JpaRepository.

org.hibernate.PersistentObjectException: отдельная сущность передана в постоянство: com.asset.app.user.User

Также если есть какой-то способ, которым я могу сохранить StudentAcadmicsDetails напрямую, не сохраняя прикрепление объекта пользователя. Отображение базы данных между пользователем и StudentAcadmicsDetails должно быть разрешено полем userId

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...