当前位置: 首页 > 知识库问答 >
问题:

Hibernate:@ManyToOne(fetch=fetchType.lazy)对非主键引用的列不起作用

彭浩穰
2023-03-14

我有两个表:订单[orderid(PK),OrderShipmentCode,...]装运[shipmentid(PK),ShipmentCode,...]

Order类中,我声明了Shipport字段,如下所示:

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "OrderShipmentCode", referencedColumnName = "ShipmentCode", insertable = false, updatable = false, nullable = false)
private Shipment shipment;

当我获得order列表时,shipport也被加载(我看到了许多单独的SELECT查询)。但我希望装运是惰性加载的,而不是与订单一起提取的。

对于其他表,如果引用的列是主键,则结果与预期一样(使用懒惰加载)。在我的示例中,shipmentcode不是shipment表的主键,并且Hibernate不使用惰性加载。

你能告诉我怎样实现那个目标吗?

Criteria criteria = HibernateUtil.getSessionFactory().getCurrentSession().createCriteria(Order.class);
List result = criteria.list();

共有1个答案

闻人昕
2023-03-14

Thd问题是由HHH-13024问题引起的。

根据OSS的真正精神,您可能希望调查问题并发送带有修复建议的拉请求。这是解决问题的最快方法

 类似资料:
  • 这是我的模型: 以下是表格: 这些实体是: 我得库: org.hibernate:hibernate-core:jar:4.2.17.final:compile org.hibernate.common:hibernate-commons-annotations:jar:4.0.2.final:compile org.hibernate.javax.persistence:hibernate-jp

  • 我正在使用JPA2.1(Eclipselink2.5.1)和JBoss7.1。 为什么不工作是懒惰加载? 谢谢

  • 我正在尝试< code>fetchType的示例。懒惰,但是在调试代码时,似乎< code>fetchType。懒惰不起作用。 实体bean:地址 添加了属性为fetch=fetchType的注释@Basic。懒散地在地区赛场上。 我的实体bean由以下代码定义: 使用上述实体 Bean 的方法: 因此,在方法调用之后,当我检查地址对象时,它已经填充了区域字段。 请让我知道我是否缺少某些配置,或者

  • 如果您在一个表上的非空列上使用计数,而没有任何where部分,则优化器只需返回该表中的行数。 如果您要求对一个唯一的非空列(如主键)进行非重复计数,答案应该是相同的,但是这次mariadb代替了。 如果您在其他表上留下了联接,但仍然没有 where 部分,则结果仍应为该表中的行数。 Mariadb 不使用千次优化是有原因的吗?是否存在未过滤主键的 DISTINCT 计数可以给出任何其他结果,然后该

  • 问题内容: 我在spring使用Hibernate。 我有这样的模型班。 它通常可以正常工作,但是Category不会延迟加载,而是在ForumEntry加载后急切加载。 `` 完全没有将getter称为ForumCategory是在ForumTopic之后立即加载的。 这个问题出现在我所有的@ManyToOne关联中。但是,@OneToMany关联会延迟加载。 我正在使用maven2进行构建。这