您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

访问关联实体的ID时Hibernate生成SQL查询

访问关联实体的ID时Hibernate生成SQL查询

据我了解,该调用不应往返于数据库,因为Id存储在EntityA表中,并且代理应仅返回该值。

使用 。您遇到的行为是字段访问类型的“限制”。这是Emmanuel Bernard的解释:

那是不幸的,但可以预料的。这是字段级别访问的限制之一。基本上,我们没有办法知道getId()实际上只能访问id字段。因此,为了安全起见,我们需要加载整个对象。

因此,将代码更改为:

@Entity
public class EntityA {
    private EntityB parent;

    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "parent_id")
    public EntityB getParent() {
        return parent; 
    }
    ...
}

@MappedSuperclass
public class SuperEntity {
    private long itemId;

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name = "id")
    public long getItemId() { 
        return itemId;
    }
    ...
}
SQLServer 2022/1/1 18:13:36 有767人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶