【问题标题】:Can we selectively fetch the columns of an associated joined object in Hibernate?我们可以在 Hibernate 中选择性地获取关联的连接对象的列吗?
【发布时间】:2017-04-11 16:43:43
【问题描述】:
@Entity
@Table(name = "USER_INFO")
public class User  {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name = "USER_ID")
    private int userId;

    @OneToOne
    @JoinColumn(name = "CGH_SOE_ID", referencedColumnName = "CGH_SOE_ID", foreignKey = @ForeignKey(name = "none", value = ConstraintMode.NO_CONSTRAINT))
    @Fetch(FetchMode.JOIN)
    private UserDimension userDimension;

.......

@Entity
@Table(name = "USER_DIMENSION")
public class UserDimension {

    @Column(name = "EMPLID", length = 11)
    private String employeeLid;

    @Id
    @Column(name = "CGH_SOE_ID", length = 10, nullable = false)
    private String CGHSOEId;

我使用 Criteria 查询从数据库中获取用户对象,并且用户维度与之关联。

1) 当我从数据库中获取用户对象时,我只想从 UserDimension 中获取 2-3 列。

2) 我可以在所有列获取和选定列获取之间动态切换吗?

谢谢

【问题讨论】:

    标签: java spring hibernate jpa hibernate-criteria


    【解决方案1】:

    您无法提供的最简单的答案。 Hibernate 检索实体中提到的所有列。

    可能的解决方法:

    1. 您可以基于相同的表定义另外 2 个实体 UserShort 和 UserDimensionShort,但列有限。

    2. 使用 JdbcTemplate,您可以在其中触发 SQL 查询(仅使用所需的列)并添加映射以将列数据获取到实体字段。 (见the example)

    【讨论】:

      猜你喜欢
      • 2016-08-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-25
      相关资源
      最近更新 更多