jay*_*att 27 hibernate jpa fetch
指定lazy = "true"和使用有fetch = "select" or "join"什么区别 ?哪一个优于另一个?
关于jayendra
kam*_*mil 30
假设我们有这样的实体:
@Entity
@Table
public class Parent {
@Id
private Long id;
@OneToMany(mappedBy="parent", fetch = FetchType.EAGER)
@Fetch(FetchMode.JOIN)
private List<Child> child;
//getter setters
}
@Entity
@Table
public class Child {
@Id
private Long id;
@ManyToOne(fetch = FetchType.LAZY)
private Parent parent;
//getter setter
}
Run Code Online (Sandbox Code Playgroud)
在上面的例子中,当获取Parent实体时,hibernate将child使用join 自动加载所有实体.另一方面,当您获取时Child,Parent除非您在代码中将其称为明确,否则将不会选择实体child.getParent().
FetchType(Lazy/Eager)告诉我们是否希望在代码中调用时急切地或懒惰地加载实体.
FetchMode(Select/Join)告诉我们是否希望我们的权利加载了额外的select或在一个查询中加入或subselect.
Vis*_*kia 24
FetchMode:它定义了howhibernate(使用哪种策略,例如Join,SubQuery等)将从数据库中获取数据.
FetchType:它定义了whetherhibernate是否会获取数据.
注意:FetchMode仅适用于FetchType = EAGER注释时.
| 归档时间: |
|
| 查看次数: |
29342 次 |
| 最近记录: |