I have an entity which has multiple fields, some of which are associations. 
Assume the entity has similar structure to the following:

```
@Entity
@Table(name="foos")
public class Foo {

  public Foo() {}
  @Id
  private Long id;

  @Column
  private String name;

  @OneToOne(fetch = FetchType.EAGER)
  @JoinColumn(name = "bar_id")
  private Bar bar;

  @ManyToOne
  @JoinColumn(name = "bar1_id")
  private Bar1 bar1;

  @ManyToOne
  @JoinColumn(name = "bar2_id")
  private Bar2 bar2;

  @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER, orphanRemoval = true)
  @JoinColumn(name = "foo_id")
  private List<Bar3> bar3;

  @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER, orphanRemoval = true)
  @JoinColumn(name = "foo_id")
  private List<Bar4> bar4;

  //getters and setters
}

```

My question is how can I load only some fields and not the whole entity using Hibernate query?  

I want to fetch only id, bar, bar1 and bar3, and don't want to fetch the remaining fields(name, bar2, bar4) in the created Foo object.  

I'm pretty new to Hibernate so any advice will be appreciated.