Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hibernate 使用带@mapsId的spring jpa时传递给persist的分离实体_Hibernate_Jpa_Spring Data Jpa - Fatal编程技术网

Hibernate 使用带@mapsId的spring jpa时传递给persist的分离实体

Hibernate 使用带@mapsId的spring jpa时传递给persist的分离实体,hibernate,jpa,spring-data-jpa,Hibernate,Jpa,Spring Data Jpa,我有两个实体User和UserPersonalDetails与OneToOne映射。下面是我的课程 用户类 UserPersonalDetails类 当我试图用SpringJPA的JpaRepository保存UserPersonalDetails对象时,结果出现以下错误 嵌套异常是 org.springframework.dao.InvalidDataAccessApiUsageException:分离 传递到persist的实体:com.asset.app.user.user;嵌套异常是 o

我有两个实体User和UserPersonalDetails与OneToOne映射。下面是我的课程

用户类

UserPersonalDetails类

当我试图用SpringJPA的JpaRepository保存UserPersonalDetails对象时,结果出现以下错误

嵌套异常是 org.springframework.dao.InvalidDataAccessApiUsageException:分离 传递到persist的实体:com.asset.app.user.user;嵌套异常是 org.hibernate.PersistentObjectException:传递给的分离实体 持久化:com.asset.app.user.user]

注意:在数据库中保存/更新UserPersonalDetails对象时,我不想再次保存/更新User对象

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

    public User() {}

public User(long userId, String email, String role) {
    this.userId = userId;
    this.email = email;
    this.role = role;
}
@Entity
@Table
public class UserPersonalDetails {

    @Id
    Long userId;

    @JoinColumn(name = "userId")
    @OneToOne( cascade = CascadeType.MERGE)
    @MapsId

    User user;

    Long univercityId;
    Long collageId;
    String address;
    String parentContact;
    String tempAddress;