Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我什么时候在Hibernate中使用@OneToOne注释?_Java_Hibernate_Annotations - Fatal编程技术网

Java 我什么时候在Hibernate中使用@OneToOne注释?

Java 我什么时候在Hibernate中使用@OneToOne注释?,java,hibernate,annotations,Java,Hibernate,Annotations,我有两个表表1,表2。两者都有一对一的关系 table2包含table1的外键 如果我使用 @OneToOne(cascade=CascadeType.ALL)或 @ManyToOne(fetch=FetchType.LAZY)用于下面的方法。那会有什么影响呢 @Column( name = "table1_id" ) public Long getTable1Id() { return this.table1Id; } 若您使用OneToOne,那个么您需要定义的不是类中的id变量

我有两个表
表1
表2
。两者都有一对一的关系

table2
包含
table1
的外键

如果我使用
@OneToOne(cascade=CascadeType.ALL)
@ManyToOne(fetch=FetchType.LAZY)
用于下面的方法。那会有什么影响呢

@Column( name = "table1_id" )
public Long getTable1Id() {
    return this.table1Id;

}

若您使用OneToOne,那个么您需要定义的不是类中的id变量,而是另一个类的对象,如以下示例所示:

Lazy意味着在被访问之前,不会从其他表中提取行。
CascadeType.ALL
表示所有操作(如删除)都将传播到相关对象。

目前我可以成功地获取和保存记录。如果我应用@OneToOne(cascade=CascadeType.ALL,fetch=FetchType.LAZY),那么它会通过异常吗?声明它肯定不会抛出异常——但我猜你的意思是在访问它时?首先,@OneToOne对于一对一的关系来说是正确的,当然,第二,如果您试图访问getter/setter而不在有效的持久性上下文中,您会遇到一个异常,抱怨延迟加载,这意味着当对象被分离时,无法获得对其他对象的引用。我发现用对象而不是表来思考会有帮助。那么,如何将两个对象链接在一起呢?嗯,一个必须是另一个的成员。Dbf在这方面做得更多。