JPA 一对一

对于双向一对一,经过测试,需要注意如下几点:

1:如果查找主对象,则不管在主对象设置哪种类型FetchType,都会把从对象查找出来,但是生成的SQL会根据FetchType而不同。如果是EAGER,则主对象与从对象是通过一条SQL(left out join)得到;如果是LAZY,则主对象与从对象是用彼此的SQL查找,即需要两条SQL

2:如果在从对象上设置主对象的FetchType=LAZY,则查找从对象时候,不会得到主对象,即只生成一条从对象的SQL;如果在从对象上设置了主对象FetchType=EAGER,则查找从对象的时候,会生成两条SQL,都是从对象表Inner Join主对象表,但是第一个SQL的参数是传入的参数,第二个SQL的参数是从表关联主表的外键。

你可能感兴趣的:(JPA 一对一)