以下のように@ManyToOne関係を持つ2つのエンティティクラスがあります。CrudRepositoryを使用して外部キーを持つエンティティオブジェクトを保存します。
@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
。私は、JSONペイロードでCrudRepositoryデフォルトの方法studentRepository.save(student)
を使用して生徒のオブジェクトを保存しようとすると
@Entity
public class School {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer schoolId;
@Column(nullable = false)
private String schoolName;
//Getters and Setters methods
、それは私にエラーjava.sql.SQLException: Field 'school_id' doesn't have a default value
を与えます。デバッグモードで実行すると、スクールオブジェクトが正しく設定されていることがわかります。次のように
私のJSONペイロードは次のとおりです。
[
{
"studentId": "2015020",
"studentName": "ABC",
"school": {
"schoolId": 1
}
}
]
私は春データJPAに新しいですので、これは非常に基本的な間違いかもしれません。
それを指摘していただきありがとうございます。それはタイプミスで、私はそれを修正しました。 – anirus