繁体   English   中英

JPA/Hibernate 只加入一个选定的列

[英]JPA/Hibernate Join only one selected column

通过@ManyToOne到现有表

    @ManyToOne
    @JoinColumns({
            @JoinColumn(name = "ID", referencedColumnName = "APPLICATION_ID", insertable = false, updatable = false),
            @JoinColumn(name = "VERSION", referencedColumnName = "APPLICATION_VERSION", insertable = false, updatable = false)
    })
    private ApplicationsBodies applicationsBodies;

我加入另一张桌子。

但是从连接表中,我只想连接一列。

@Entity
@Table
public class ApplicationsBodies implements Serializable {

... 

@Column(name = "APPLICATION_ID")
private Long applicationId;

@Column(name = "APPLICATION_VERSION")
private Long applicationVersion;

//I want to attach only this column
@Lob
@Column(name = "BODY")
private String body;

@Column(name = "ACTIVE_STATE")
private Integer activeState;

如何使用 JPA/Hibernate 实现这一点?

更新:解决方案

@Formula注释解决了我的问题。 因为当我仅仅为了加载这个字段而引用一个实体时,对我来说它已经成为最优化的解决方案。

我删除了字段: private ApplicationsBodies applicationsBodies 并创建了一个字段: private String body with annotation @Formula with value - SQL 查询仅加入一列。

如果您想对 JPA 数据使用连接,那么我建议使用 JPL 查询语言。 因此,在您的存储库类中用作注释:

@Query("select a.name from ApplicationsBodies a join a.applicationId d where d.id = :applicationVersion")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM