我想知道
之间究竟有什么区别@OneToOne和@Column
用于java中的对象。我刚刚来到这里,因为Spring引导和它的JPA实现默认不支持java 8,就像类Instant。
我现在手动更新,现在有代码片段:
@Entity
public class Volumen {
@OneToOne
Instant dateAndTime;
public Volumen(Instant dateAndTime) {
this.dateAndTime = dateAndTime;
}
public Instant getDateAndTime() {
return dateAndTime;
}
public void setDateAndTime(Instant dateAndTime) {
this.dateAndTime = dateAndTime;
}
}
由于java lib对象的例子不多,我希望你能解释一下,有什么区别
@OneToOne
Instant dateAndTime;
和
@Column
Instant dateAndTime;
谢谢!
答案 0 :(得分:3)
@OneToOne
指定关系,另一个实体的外键。 @Column
只是指定该属性表示表中的列。
您只能在基本类型(String,Integer,Date,Long ...)上使用@Column
。如果要使用复杂对象(由您实现的自定义对象),则必须使用关系注释(@OneToOne
,@OneToMany
,@ManyToOne
或@ManyToMany
)
@OneToOne
和@Column
是JPA的注释。 JPA是Java EE的一个规范,有许多版本。 Java EE 7的版本是JPA 2.1,它是在Java 8之前的日期,因此不支持JPA 2.1中新的Java 8 Java Time API。您将不得不等待Java EE 8(预计2017年底)的发布,以及下一版本的JPA将@Column
与Instant
一起使用。