@Romka21

Hibernate связь ManyToOne не по первичному ключу?

Всем привет, только начал изучать Hibernate, есть один вопрос
Во всех примерах связь объектов(ManyToOne и OneToMany) происходит по первичному ключу, обычно long ID, нашел в интернете, что первичным ключом может быть и uuid.
Собственно вопрос:
long id; //Это первичный ключ
UUID guid; // как привязать множество по этому ключу, не делая его первичным?

@Entity
public class Dictionary {
   @Id
   @GeneratedValue(strategy = GenerationType.IDENTITY)
    private int id;

    @Column
    UUID guid = UUID.randomUUID(); //Как привязать DictionaryContent к этому идентификатору, не делая его первичным ключом?

    @OneToMany(cascade = CascadeType.ALL,orphanRemoval = true)
    @JoinColumn(name = "dictionary_id")
    private List<DictionaryContent> contentList;
}

@Entity 
public class DictionaryContent {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private long id;


    @Column
    UUID guid = UUID.randomUUID();

    @ManyToOne
    private Dictionary dictionary;

}
  • Вопрос задан
  • 44 просмотра
Решения вопроса 1
@alexw1n
Никак. Любые типы связей строятся только по первичному ключу. Либо делайте uuid первичным ключом,либо вторичный индексом и отбирайте запросом.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы
ПАО Совкомбанк Череповец
от 50 000 руб.
Компания БКС Новосибирск
от 90 000 до 160 000 руб.
Ditrix Москва
от 120 000 руб.
12 дек. 2018, в 08:07
1000 руб./за проект
12 дек. 2018, в 05:58
1000 руб./за проект
11 дек. 2018, в 21:41
500 руб./за проект