выборка из двух таблиц в HQL
Есть две таблицы, мне нужно выбрать имя пользователя из таблицы users и все связанные с ним машины из таблицы autos. Я не могу понять, как правильно сделать запрос. Я перепробовал много способов и в конце концов запутался. Любая помощь приветствуется.
UserDAO
public List<User> find Users Auto(String name){
Session session = Hibernate SessionFactory Util.getSessionFactory().open Session();
String hql ="from Auto as us inner join User as u where user_id = id";
Query query = session.createQuery(hql);
query.setParameter("name", name).list();
List<User> users = (List<User>) query.list();
return users;
Entities
User
@Entity
@Table (name = "users")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
@Column(name = "name")
private String name;
//можно не указывать Column name, если оно совпадает с названием столбца в таблице
private int age;
@OneToMany(mappedBy = "user", cascade = CascadeType.ALL, orphanRemoval = true)
private List<Auto> autos;
public User() {
}
public User(String name, int age) {
this.name = name;
this.age = age;
autos = new ArrayList<Auto>();
}
public void add Auto(Auto auto) {
auto.set User(this);
autos.add(auto);
}
public void remove Auto(Auto auto) {
autos.remove(auto);
}
public List<Auto> get Autos() {
return autos;
}
Autos(List<Auto> autos) {
this.autos = autos;
}
Auto
@Entity
@Table(name = "autos")
public class Auto {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
@Column (name = "model")
private String model;
private String color;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "user_id")
private User user;
public Auto() {
}
public Auto(String model, String color) {
this.model = model;
this.color = color;
}
}