我試圖瞭解EclipseLink行爲的情況下,如果我使用本機查詢。所以,我有實體是這樣的:EclipseLink本機查詢和FetchType行爲
class Entity {
@OneToOne(fetch = FetchType.LAZY)
@JoinColumn(name="other_entity_id")
private OtherEntity otherEntity;
@Column(name = "name")
private String name;
//gets ... sets ...
}
和相應的表是這樣的:
**ENTITY**
INTEGER ID;
VARCHAR NAME;
OTHER_ENTITY_ID;
然後我運行本地查詢
Query query = getEntityManager().runNativeQuery("select * from ENTITY", Entity.class);
query.getResultList()
在Entity
我宣佈OtherEntity otherEntity
其中標註有FetchType.LAZY
,但是我的查詢選擇(*) - 所有列,包括OTHER_ENTITY_ID。問題是 - 如果我運行提取所有列的本機查詢,是否填充了FetchType.LAZY
註釋的字段,就好像它們是FetchType.EAGER
或不是?我從來沒有與EclipseLink的工作前,tyring決定使用它是否值得或不那麼我會很感激的任何幫助
謝謝,乾杯