【发布时间】:2019-12-15 11:36:03
【问题描述】:
我正在尝试使用 POST Rest API 向 h2-memory 数据库添加一个新对象。 我收到了这个错误:嵌套异常是 org.hibernate.exception.ConstraintViolationException
在我的费用实体中,我放了 @ManyToOne(cascade=CascadeType.ALL) 所以它不应该在创建费用对象之前创建类别对象,不是吗?
提前致谢。 这是我的实体: 公共类费用 {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id", updatable = false, nullable = false)
private Long id;
private String description;
@Column(name = "expense_date")
private Instant expenseDate;
@Column(name = "location")
private String location;
@ManyToOne(cascade={CascadeType.ALL})
@Nullable
@JoinColumn(name = "category_id", referencedColumnName = "id", nullable = false)
private Category category;
@ManyToOne(cascade=CascadeType.ALL)
@JoinColumn(name = "user_id", referencedColumnName = "id", nullable = false)
@Nullable
@JsonIgnore
private User user;}
类别类 公共类类别 {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id", updatable = false, nullable = false)
private Long id;
@NonNull
private String name;}
用户等级: 公共类用户{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id", updatable = false, nullable = false)
private Long id;
private String name;
private String email;}
【问题讨论】:
-
你如何创建你的表?我认为你必须为 null 的 user_id 和 category_id
-
我首先使用放入 classPath 的 sql 文件创建表。之后我使用弹簧数据到 CRUD
-
你能把那个贴在这里吗?
-
插入用户(姓名,电子邮件)值('Siamak','Codeengine11@gmail.com')插入用户(姓名,电子邮件)值('John','John@john.com ')插入用户(姓名,电子邮件)值('Adam','adam@adam.com')插入类别(名称)值('Travel')插入类别(名称)值('Auto Loan')
-
插入类别(名称)值('旅行')插入费用(描述,费用_日期,位置,类别ID,用户ID)值('纽约商务旅行','2019-06-16T17: 00:00.000Z','Paris',1,1) 插入费用(description,expense_date,location,category_id,user_id)值('Ford Mustang Payment','2019-06-15T15:00:00.000Z',' New York',2,2) 插入费用(description,expense_date,location,category_id,user_id) values('Grand Canyon Trip With Family','2019-06-15T15:00:00.000Z','Los Angeles', 3,1)
标签: java spring hibernate api jpa