Я очень знаком с SQL/HQL, и я в настоящее время застрял с этим «может быть» простой задачи:Hibernate HQL м: п присоединиться к проблеме
У меня есть два многие-ко-многим Сущности, с таблицей соотношения:
Автомобиль, проблема с автомобилем и проблема.
Один автомобиля может иметь много проблем,
Одна проблема может появиться во многих автомобилях,
CarProblem является таблицей ассоциации с другими свойствами.
Теперь я хочу найти Автомобиль (ы) с указанной проблемой, как написать такой HQL? Все идентификаторы длинного типа.
Я пробовал много присоединиться к/внутрипартийной присоединиться к комбинации, но все напрасно ..
- обновление:
К сожалению, забыл упомянуть:
Автомобиль имеет много CarProblem
Проблема имеет много CarProblem
автомобиля и проблемы не связаны непосредственно в Java Object.
- обновление, Java код ниже -
@Entity
public class Car extends Model{
@OneToMany(mappedBy="car" , cascade=CascadeType.ALL)
public Set<CarProblem> carProblems;
}
@Entity
public class CarProblem extends Model{
@ManyToOne
public Car car;
@ManyToOne
public Problem problem;
... other properties
}
@Entity
public class Problem extends Model {
other properties ...
// not link to CarProblem , It seems not related to this problem
// **This is a very stupid query , I want to get rid of it ...**
public List<Car> findCars()
{
List<CarProblem> list = CarProblem.find("from CarProblem as cp where cp.problem.id = ? ", id).fetch();
Set<Car> result = new HashSet<Car>();
for(CarProblem cp : list)
result.add(cp.car);
return new ArrayList<Car>(result);
}
}
Модель от игры! рамки, поэтому эти свойства являются общедоступными.
Показать ваш код/картирование –