我正在使用休眠模式将我的模型映射到数据库。 使用基于CriteriaBuilder API的自制引擎,我试图仅根据用户需求加入(获取)关系。
对于拥有的实体国家:
如果用户要求添加关系,我将执行提取:
this.root.fetch(relation.getField.getName(), relation.joinType());
如果关系是一个OneToOne: 正如预期的那样,我的实体现在拥有该对象。 如果用户未指定包含,则该实体将持有一个HibernateProxy实例,我在序列化时将其丢弃。
如果关系是OneToMany: 在这两种情况下(无论是否包含),实体都将持有PersistentSet的实例。
所以我的问题是:即使我要求联接是fetch,休眠还是返回PersistentSet实例正常吗?
如果是,从PersistentSet中,我是否可以确定是否要求将其提取?