首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未从明细表中获取具体数据

未从明细表中获取具体数据
EN

Stack Overflow用户
提问于 2016-02-09 02:11:42
回答 1查看 70关注 0票数 2

这是一个命名查询,用于获取具有特定用户元数据的特定曲目。

代码语言:javascript
复制
"SELECT t FROM Track t LEFT JOIN FETCH t.metadata tm WHERE t.id= :id AND tm.userID = :userID"

在Track entity中,我有一个带有@OneToMany关系的元数据列表,带有join table inbetween name = tracks_metadata_join。

代码语言:javascript
复制
//TrackMetadata


 @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, targetEntity=TrackMetadata.class, orphanRemoval = true) 

 @JoinTable(name = "tracks_metadata_join", joinColumns = { @JoinColumn(name = "track_id", 

 referencedColumnName = "id", table = "tracks") }, inverseJoinColumns = @JoinColumn( 

 name = "track_metadata_id", referencedColumnName = "id", table = "tracks_metadata")) 

 @JsonProperty 

 private List<TrackMetadata> metadata = new ArrayList<>();

上面查询的结果是跟踪所有它的所有元数据,但我想跟踪特定的元数据。比如用户特定的。谢谢!

EN

回答 1

Stack Overflow用户

发布于 2016-02-09 03:12:24

当您读取Track并初始化其metadata集合时,Hibernate将填充整个集合。这就是Hibernate的工作原理。

如果您只想加载特定的metadata元素,那么您可以使关联成为双向的,并且只加载所需的元数据:

代码语言:javascript
复制
select tm from TrackMetaData tm where tm.track.id = :id and tm.userID = :userID
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35276381

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档