У меня есть 2 класса, которые имеют общий UUID и отображаются в одном направлении.Я использую UUID для группировки связанных строк, и эта группа разделяет много деталей (это только пример):
@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
Я ожидал, что объединение будет использовать@JoinColumn
аннотация, чтобы найти столбец для присоединения.Я вижу, что могу указать тип соединения, но не вижу способа указать фактический столбец.