Я пытаюсь использовать JDBC Spring Data и не могу понять, есть ли возможность настроить имена столбцов внедренного объекта (в JPA мы используем @AttributeOverrides
для этого).
В моей модели я создал класс Amount
, который я хотел бы использовать в различных типах объектов.
public class Amount {
private BigDecimal value;
private String currency;
//getters, settes, contructors
}
Я хотел бы сохранить его как 2 встроенных значения в двух таблицах: houses
и cars
.
В таблице houses
я хочу, чтобы столбцы назывались house_price_value
и house_price_currency
. В таблице cars
они должны называться car_eval_value
и car_eval_currency
.
public class House {
@Id
Long id;
int numberOfRooms;
@Embedded
Amount amount;
//other attributes, getters, setters, constructors
}
public class Car {
@Id
Long id;
String model;
@Embedded
Amount amount;
//other attributes, getters, setters, constructors
}
Проблема в том, что аннотация @Column
применима только к атрибуту и должна быть установлена на уровне класса Amount
. что делает этот класс не пригодным для повторного использования.
В JPA я бы использовал это, но в JDBC эта аннотация не найдена:
@AttributeOverrides(value = {
@AttributeOverride(name = "value", column = @Column(name = "house_price_value")),
@AttributeOverride(name = "currency", column = @Column(name = "house_price_currency"))
})
Разве я не вижу другого решения?