【问题标题】:Java Hibernate. Creates record with errorJava 休眠。创建错误记录
【发布时间】:2016-02-03 23:11:11
【问题描述】:

当我尝试创建注释记录时出现此错误。

org.hibernate.TransientObjectException: 对象引用了一个未保存的对象 瞬态实例 - 在刷新之前保存瞬态实例

注解实体

public class Annotation implements Identifiable {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    @ManyToOne
    @JoinColumn(name = "id_user")
    private User profile;

    @Column
    @Temporal(TemporalType.DATE)
    private Date date;

    @Column
    private String name;

    @Column
    private String description;

    // Only getters and setters

}

用户实体

@Entity
@Table
@Component
public class User implements Identifiable {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private long id;

    @Column
    private String email;

    @Column
    private String username;

    @Column
    private String password;

    @Column(nullable = false,columnDefinition = "int default 1")
    @Enumerated(EnumType.ORDINAL)
    private UserRole role = UserRole.ROLE_USER;

    @Column
    private Boolean enabled = Boolean.TRUE;

}

我知道为了避免这个错误我必须使用 CascadeType.ALL 但之后出现另一个问题:当我尝试创建注释记录时,会自动创建不应该的用户记录。

如何在新的注释记录中添加id_profile?

【问题讨论】:

标签: java spring hibernate


【解决方案1】:

我通过更改解决了这个问题

@Column(name="id_user")
    private Long idUser;

实例

@ManyToOne
    @JoinColumn(name = "id_user")
    private User profile;

但我认为这种方式是错误的

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-05-02
    • 2017-09-18
    • 1970-01-01
    • 2012-05-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多