我有两个具有@ManyToOne关系的实体类,如下所示。
@Entity
public class Student {
@Id
private Integer studentId;
@Column(nullable = false)
private String studentName;
@ManyToOne(targetEntity = School.class, fetch = FetchType.LAZY, optional = false)
@JoinColumn(referencedColumnName = "schoolId", insertable = false, updatable = false)
private School school;
//Getters and Setters methods
@Entity
public class School {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer schoolId;
@Column(nullable = false)
private String schoolName;
//Getters and Setters methods
[
{
"studentId": "2015020",
"studentName": "ABC",
"school": {
"schoolId": 1
}
}
]
我是Spring Data JPA的新手,所以这可能是一个非常基本的错误。
在实体student
中,属性school
是一个对象。若要插入新学生,必须使用对school
对象的引用。所以你的有效载荷必须是这样的:
{
"studentId": 2015020,
"studentName": "ABC",
"school": "http://localhost:8080/api/schools/1"
}
还可以简化属性学校
的定义:
@ManyToOne(optional = false)
private School school;
我有以下实体: 我第一次使用复合主键,所以我不知道它应该如何工作。问题可能来自定义。第二个参数应该表示ID。但是没有一个主键,而是有两个主键,所以我认为我应该将id类添加到id参数中,但这不起作用。如何使用带有CrudRepository的IdClass键保存具有复合主实体?
问题内容: 如果我有两个像这样的hibernate实体: 我有一个已经存储的公司 我可以创建一个仅用其ID引用公司的人,而不是加载整个记录,例如: 它是仅保存参考还是使用更新公司? 问题答案: 是的,您可以做到。 它是否仅保存引用,还是使用name = null更新公司? 使用default ,这样,Hibernate将不执行任何操作。因此答案是:它只保存一个外键。 最有效的方法(也适用于JPA)
我在使用复合主键创建实体时遇到问题,该键也是外键。这是我的表和关系表原理图。当我想创建新闻实体时,我收到了带有null creatingnews的错误消息。新闻翻译有复合主键,外键引用到新闻表。 这是我的代码: 新闻聚合 新闻翻译 标签 新闻语言ID 在NewsFactory中,我希望使用NewsTranslation创建NewsAggregate,但有错误消息NullPointer。 新闻工厂
问题内容: 我刚开始使用Django REST框架,但是在保存外键时遇到了麻烦。我有一个模特和一个model。的Phone外键为。向发出请求时,我想为Phone请求中提供的数字创建对象。但是,当我提供电话号码时,会出现以下错误 我只希望它创建Phone对象本身。这是我正在使用的模型: 这是我正在使用它们的视图和序列化器 这是我的请求正文: 这是回应: 400错误的要求 问题答案: 该由Django
我被侵犯了-在试图保存Hibernate实体时未找到父密钥 我有父实体: 子实体看起来像(在数据库中,它在parents表的parents_id字段上有外键): 在创建父对象和childAssignments对象之后,我将向父对象添加childAssignment 预期结果是使用ID保存新的父项,并在使用此ID保存子项后,但hibernate在保存时似乎不知道父项的ID,我应该如何建立关联以使其工
我使用spring boot 2,我的一些实体有复合键 当我尝试保存一个实体时,我会得到这个错误 无法转换请求元素:org.springframework.beans.conversionNotSupportedException:无法将类型“java.lang.integer”的属性值转换为属性“samping”所需的类型“com.lcm.model.samplingspk”;嵌套异常为java