title: Hibernate 5 and JPA: select table without his children but maintain persistence on save
body: <p>I have two models: Ordine and DettaglioOrdine.
  I would like that, when I save an object of type &quot;Ordine&quot;, hibernate also save his child &quot;DettaglioOrdine&quot; (and this works).
  But, if I do a select query, the query is very very slow because hibernate retrieve also DettaglioOrdine. So, I would like the &quot;Ordine&quot; object without &quot;DettaglioOrdine&quot; object.</p>
  <p>&quot;Ordine&quot; model:</p>
  <pre><code>@Entity
  @Table(name=&quot;ordini&quot;)
  @NamedQuery(name=&quot;Ordine.findAll&quot;, query=&quot;SELECT o FROM Ordine o&quot;)
  public class Ordine extends DataObject&lt;Integer&gt; {
      private static final long serialVersionUID = 1L;
      private Integer id;
  [...]
      private List&lt;Dettagliordine&gt; dettagliordine;
  
      @Id
      @GeneratedValue(strategy=GenerationType.IDENTITY)
      @Column(unique=true, nullable=false)
      public Integer getId() {
          return this.id;
      }
  
      public void setId(Integer id) {
          this.id = id;
      }
  
      //bi-directional many-to-one association to Dettagliordine
      @Column(insertable = true, updatable = true)
      @OneToMany(cascade=CascadeType.ALL, fetch=FetchType.LAZY, mappedBy=&quot;ordine&quot;)
      public List&lt;Dettagliordine&gt; getDettagliordine() {
          return this.dettagliordine;
      }
  
      public void setDettagliordine(List&lt;Dettagliordine&gt; dettagliordine) {
          this.dettagliordine = dettagliordine;
      }
  
      public Dettagliordine addDettagliordine(Dettagliordine dettaglioordine) {
          dettaglioordine.setOrdine(this);
          this.dettagliordine.add(dettaglioordine);
  
          return dettaglioordine;
      }
  
      public Dettagliordine removeDettagliordine(Dettagliordine dettagliordine) {
          dettagliordine.setOrdine(null);
          this.dettagliordine.remove(dettagliordine);
          
          return dettagliordine;
      
  
      }
  }
  </code></pre>
  <p>DettaglioOrdine Model:</p>
  <pre><code>@Entity
  @Table(name=&quot;dettagliordine&quot;)
  @NamedQuery(name=&quot;Dettagliordine.findAll&quot;, query=&quot;SELECT d FROM Dettagliordine d&quot;)
  public class Dettagliordine extends DataObject&lt;Integer&gt; {
      private static final long serialVersionUID = 1L;
      private Integer id;
      
          [...]
          
      public Dettagliordine() {
      }
      @Id
      @GeneratedValue(strategy=GenerationType.IDENTITY)
      @Column(unique=true, nullable=false)
      public Integer getId() {
          return this.id;
      }
      public void setId(Integer id) {
          this.id = id;
      }
  
      [...]
      
      //bi-directional many-to-one association to Ordini
      @ManyToOne(fetch=FetchType.LAZY)
      @JoinColumn(name=&quot;idOrdine&quot;, nullable=false)
      public Ordine getOrdine() {
          return this.ordine;
      }
      public void setOrdine(Ordine ordine) {
          this.ordine = ordine;
      }
  }
  </code></pre>
  <p>And this is my query:</p>
  <pre><code>SessionFactory sessionFactory = getSessionFactory();
          Session session = sessionFactory.getCurrentSession();
          List&lt;OrdineDTO&gt; result = null;
          try{
              String hql = &quot;select d.ordine from Dettagliordine d &quot;
                      + &quot;group by d.ordine.id&quot;;
              Query&lt;Ordine&gt; query = session.createQuery(hql,Ordine.class);
              List&lt;Ordine&gt; res = query.getResultList();
              result = new OrdineDMO().unmarshall(res);
          }catch (DMOException e) {
              e.printStackTrace();
          }
  </code></pre>