休眠实体的序列化:根据用户需求加入提取

时间:2019-06-24 12:09:20

标签: hibernate lazy-loading

我正在使用休眠模式将我的模型映射到数据库。 使用基于CriteriaBuilder API的自制引擎,我试图仅根据用户需求加入(获取)关系。

对于拥有的实体国家:

  • 一组区域(一个到多个)
  • 国家(OneToOne)的空间信息

如果用户要求添加关系,我将执行提取:

this.root.fetch(relation.getField.getName(), relation.joinType());

如果关系是一个OneToOne: 正如预期的那样,我的实体现在拥有该对象。 如果用户未指定包含,则该实体将持有一个HibernateProxy实例,我在序列化时将其丢弃。

如果关系是OneToMany: 在这两种情况下(无论是否包含),实体都将持有PersistentSet的实例。

所以我的问题是:即使我要求联接是fetch,休眠还是返回PersistentSet实例正常吗?

如果是,从PersistentSet中,我是否可以确定是否要求将其提取?

0 个答案:

没有答案