Java 如何自定义嵌入对象的列名?

Java 如何自定义嵌入对象的列名?,java,spring-data-jdbc,Java,Spring Data Jdbc,我正在尝试使用Spring数据JDBC,我无法理解是否有可能自定义嵌入对象的列名(在JPA中,我们使用@AttributeOverrides) 在我的模型中,我创建了一个类Amount,我想在不同类型的对象中重用它们 public class Amount { private BigDecimal value; private String currency; //getters, settes, contructors } 我想将它像两个嵌入值一样保存在两个表中:ho

我正在尝试使用Spring数据JDBC,我无法理解是否有可能自定义嵌入对象的列名(在JPA中,我们使用
@AttributeOverrides

在我的模型中,我创建了一个类
Amount
,我想在不同类型的对象中重用它们

public class Amount {
    private BigDecimal value;
    private String currency;

   //getters, settes, contructors
}
我想将它像两个嵌入值一样保存在两个表中:
houses
cars

在表
houses
中,我希望将这些列命名为
house\u price\u value
house\u price\u currency
。在表
cars
中,它们应被称为
car\u eval\u value
car\u eval\u currency

public class House {
      @Id
      Long id;
      int numberOfRooms; 
      @Embedded
      Amount amount;

   //other attributes, getters, setters, constructors
}
问题是注释
@列
仅适用于属性,应在
金额
-类级别上设置。这使得这个类不可重用

在JPA中我会使用此注释,但在JDBC中找不到此注释:

@AttributeOverrides(value = {
    @AttributeOverride(name = "value", column = @Column(name = "house_price_value")),
    @AttributeOverride(name = "currency", column = @Column(name = "house_price_currency"))
})

我没有看到其他解决方案吗?

我认为它应该与
@Embedded
属性一起工作。此值应包含前缀

@Embedded(value = "house_price_")
Amount approvalValue;

这不适合你:@mate00不完全适合。我应该把这些列放在Amount类中,因此我不知道如何为不同的表定制它,并使其可重用。我想我没有这样做。您是否希望在多个表(例如A、B和C)中使用金额,但仅在表A中,您希望列的名称与B和C中的名称不同?@mate00是的,差不多。在所有表中,我希望“value”和“currency”有不同的列名
@Embedded(value = "house_price_")
Amount approvalValue;