为什么我的外键在使用JPA保存到h2 db时为空
这两种代码之间的区别是什么。第一个在我的外键上显示null,它是individualId。第二个不是。为什么? //第1代码:为什么我的外键在使用JPA保存到h2 db时为空,jpa,jpa-2.0,Jpa,Jpa 2.0,这两种代码之间的区别是什么。第一个在我的外键上显示null,它是individualId。第二个不是。为什么? //第1代码: @Entity @JsonIgnoreProperties({ "hibernateLazyInitializer", "handler" }) public class Individual { @Id @GeneratedValue(strategy = GenerationType.AUTO) @Column(name = "INDIVI
@Entity
@JsonIgnoreProperties({ "hibernateLazyInitializer", "handler" })
public class Individual {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "INDIVIDUAL_ID")
private Long individualId;
@OneToMany(mappedBy="individual",cascade = CascadeType.ALL, fetch = FetchType.LAZY)
private List<Identification> identifications = new ArrayList<Identification>();
}
@Entity
public class Identification {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "IDT_ID")
private Long id;
@ManyToOne
@JoinColumn(name="individualId")
private Individual individual;
@实体
@JsonIgnoreProperties({“HibernateLazInitializer”,“handler”})
公共阶级个人{
@身份证
@GeneratedValue(策略=GenerationType.AUTO)
@列(name=“个人ID”)
私人长个体;
@OneToMany(mappedBy=“个人”,cascade=CascadeType.ALL,fetch=FetchType.LAZY)
私有列表标识=新的ArrayList();
}
@实体
公共类标识{
@身份证
@GeneratedValue(策略=GenerationType.AUTO)
@列(name=“IDT\u ID”)
私人长id;
@许多酮
@JoinColumn(name=“individualId”)
个人;
//第二代码
//在第一个代码中替换了@OneToMany&然后我就不在Identification类中添加@ManyToOne,它工作得很好。为什么
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
@JoinColumn(name = "INDIVIDUAL_ID", referencedColumnName = "INDIVIDUAL_ID")
private List<Identification> identifications = new ArrayList<Identification>();
@OneToMany(cascade=CascadeType.ALL,fetch=FetchType.LAZY)
@JoinColumn(name=“个人识别码”,referencedColumnName=“个人识别码”)
私有列表标识=新的ArrayList();
当我在谷歌上搜索JPA教程时,第一个代码是我经常阅读的代码。在父类中声明@OneToMany并添加mappedBy,在子类中声明@manytone。但是为什么第二个代码比第一个代码工作得完美呢?它只允许我在父类中声明@OneToMany?在类
标识
中@JoinColumn
的名称与类中的任何列都不匹配Individual
。它必须是数据库中列的名称,即Individual\u ID:
@JoinColumn(name="INDIVIDUAL_ID")
你说一些持久性不起作用,但没有公布实际的持久性代码,对象是如何创建的,设置了什么,没有设置什么,发布了什么SQL。这些对象是在我填写前端的输入文本框时创建的。这些对象是通过angularjs传递的。现在使用的SQL是spring.jpa.show-SQL=true,数据源是org.h2同样,即使我面临这个问题,个人ID也是空的。