У меня есть 2 класса, которые делят UUID и отображаются однонаправленно. Я использую UUID рядам связанных групп, и эта группа имеет много общих деталей (это просто пример):Критерий Hibernate Присоединиться к проблеме
@Entity @Table
class Something {
@Id @Column("something_id")
private Long id;
private String uuid = UUID.randomUUID().toString();
@OneToMany
@JoinColumn("uuid")
private List<Detail> details = new LinkedList<Detail>();
}
@Entity @Table
class Detail {
@Id @Column("detail_id")
private Long id;
private String value;
private String uuid;
}
Я пытаюсь использовать критерии:
Criteria c = getSession().createCriteria(Something.class).createAlias("details", "detail").add(Restrictions.eq("detail.value", someValue));
Это все хорошо и денди, но я не получаю результаты из-за объединения:
inner join DETAIL d1_ on this_.SOMETHING_ID=d1_.UUID
можно указать:
inner join DETAIL d1 on this_.UUID=d1.UUID
Я бы ожидал, что соединение будет использовать annotaiton @JoinColumn
, чтобы найти столбец для соединения. Я вижу, что я могу указать тип соединения, но я не вижу способа указать фактический столбец.