Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 休眠抓取_Java_Hibernate_Hql - Fatal编程技术网

Java 休眠抓取

Java 休眠抓取,java,hibernate,hql,Java,Hibernate,Hql,嗨,我有一个场景,我需要在从数据库加载记录的同时加载第三级域对象。 以下是我的senario的例子: 有三个域类用户、属性、联系人 @Entity @Table(name="user") public class USER{ @Id @GeneratedValue(strategy = GenerationType.AUTO) @Column(name = "id") private Long id; @ManyToOne(fetch = FetchType.LAZ

嗨,我有一个场景,我需要在从数据库加载记录的同时加载第三级域对象。 以下是我的senario的例子: 有三个域类用户、属性、联系人

@Entity
@Table(name="user")
public class USER{
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
     @Column(name = "id")
     private Long id;

    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name="PROP_ID", insertable=false, updatable=false)
    private Property property;
    ............
    other fields and getter and setter methdos
    .............
   }

   @Entity
   @Table(name="properties")
   public class Property{
        @Id
        @GeneratedValue(strategy=GenerationType.AUTO)
        private Long id;

       @OneToOne(mappedBy="property", fetch=FetchType.Lazy)
       @JoinColumn(name="CONTACT_ID")
       private Contact contact;
       ............
       other fields and getter and setter methdos
       .............
   }

 @Entity
@Table(name = "contact")
public class Contact{
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id")
private Long id;
@Column(name = "ADDRESS1",length = 255)
private String address1;
@Column(name = "ADDRESS2",length = 255)
private String address2;
     ............
       other fields and getter and setter methdos
       .............
   }
有我的域类,当我获取用户记录时,我正在尝试获取联系人详细信息。 我可以使用连接获取模式获取属性记录,但我不知道如何获取第三级记录

以下是我的查询供参考:

        DetachedCriteria criteria = DetachedCriteria.forClass(USER.class);
        criteria.setFetchMode("property", FetchMode.JOIN);
        List<USER> users = getHibernateTemplate().findByCriteria(criteria);

您是否尝试过为
属性添加另一个fetchmode。请与
联系

DetachedCriteria criteria = DetachedCriteria.forClass(USER.class);
criteria.setFetchMode("property", FetchMode.JOIN)
criteria.setFetchMode("property.contact", FetchMode.JOIN);
List<USER> users = getHibernateTemplate().findByCriteria(criteria);
DetachedCriteria=DetachedCriteria.forClass(USER.class);
criteria.setFetchMode(“属性”,FetchMode.JOIN)
setFetchMode(“property.contact”,FetchMode.JOIN);
列表用户=getHibernateTemplate().findByCriteria(标准);
DetachedCriteria criteria = DetachedCriteria.forClass(USER.class);
criteria.setFetchMode("property", FetchMode.JOIN)
criteria.setFetchMode("property.contact", FetchMode.JOIN);
List<USER> users = getHibernateTemplate().findByCriteria(criteria);