Я хочу отобразить две таблицы (соединение ManyToOne) на один объект в Java.Одна из них - первичная таблица CatalogObject, вторая - просто словарь возможных типов объектов.В Java я хочу просто иметь тип String вместо сопоставления с новым объектом.Когда я хочу найти все объекты в классе (например, «база данных»), я должен сначала найти Id типа «база данных», а затем найти все CatalogObjects с указанным этим Id.Это выглядит немного утомительно.
CatalogObject Table:
ID, Name, Parent_ID (FK), TYPE_ID (FK)
Type Table:
ID, Type.
Я создал отображение с классами CatalogObject и CatalogObjectType, но класс CatalogObjectType сейчас содержит только одну строку.
public class CatalogObject implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
Long id;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "parent_id")
CatalogObject parent;
String name;
@ManyToOne
@JoinColumn(name = "type_id")
CatalogObjectType type;
}
public class CatalogObjectType implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
Long id;
String name;
}
Я хочу заменитьCatalogObjectType только со строковым значением связанного типа.Как настроить его для Hibernate / JPA?Можно ли это сделать?
Что я хочу:
public class CatalogObject implements Serializable {
...
String name;
@SomeAnnotation(name = "type_id")
String type;
}