Java Hibernate。创建有错误的记录
当我尝试创建注释记录时,会出现此错误 org.hibernate.transientObject异常:对象引用未保存的 瞬态实例-刷新前保存瞬态实例 注释实体Java Hibernate。创建有错误的记录,java,spring,hibernate,Java,Spring,Hibernate,当我尝试创建注释记录时,会出现此错误 org.hibernate.transientObject异常:对象引用未保存的 瞬态实例-刷新前保存瞬态实例 注释实体 public class Annotation implements Identifiable { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @ManyToOne @JoinColumn(na
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;
}
用户实体
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_配置文件?我通过更改
@Column(name="id_user")
private Long idUser;
实例
@ManyToOne
@JoinColumn(name = "id_user")
private User profile;
但我认为这种方式是错误的我通过改变
@Column(name="id_user")
private Long idUser;
实例
@ManyToOne
@JoinColumn(name = "id_user")
private User profile;
但我认为这种方式是错误的我也有类似的问题,完全按照他的做法解决:我也有类似的问题,完全按照他的做法解决: