Jos*_*ova 2 java spring hibernate jpa spring-data-jpa
我正在使用SpringData和Hibernate执行一些测试,并在延迟加载和findBy ...方法上发现了一些有趣的行为.
我在子类上有以下方法.
列出findByArtistCredit(Long artistCreditId);
以及Recording和ArtistCredit之间的以下映射......
@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(name="artist_credit" , referencedColumnName="artist_credit_id")
private ArtistCredit artistCreditReference;
Run Code Online (Sandbox Code Playgroud)
在"一"方面......
@OneToMany(fetch=FetchType.LAZY,mappedBy="artistCreditReference")
private Set<Recording> recordings;
Run Code Online (Sandbox Code Playgroud)
而且会发生的事情是,"多方面"的收集正在急切地被提取......
有谁知道"为什么会这样?"
任何答案都很好.
问候.
通常情况下,不应该根据你所做的事情急切地抓住它.
本recordings应该是一个延迟加载代理其装载在需要时才会触发.
然而,偶然触发延迟加载是一个常见的错误:
toString()/ hashCode()/中equals().toString()或访问延迟加载字段.我强烈建议您打开SQL加载并检查何时触发延迟加载.像JdbcDsLog这样的工具甚至只需打开Hibernate的SQL记录器就应该有所帮助
| 归档时间: |
|
| 查看次数: |
872 次 |
| 最近记录: |