Hibernate @AttributeOverride with @ColumnTransformer

时间:2017-08-20 11:31:50

标签: java hibernate jpa hibernate-mapping

我正在学习Hibernate / JPA并做一些练习。所以我的任务是映射这个实体:

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

    @Embedded
    @AttributeOverride(name = "priceInUSD", column = @Column(name = "start_price_in_uah"))
    private Price startPrice;

    @Embedded
    @AttributeOverride(name = "priceInUSD", column = @Column(name = "end_price_in_uah"))
    private Price endPrice;
}

这是我的可嵌入课程:

@Embeddable
public class Price {
    @Column(name = "price_in_uah")
    @org.hibernate.annotations.ColumnTransformer(
            read = "{dont_know_what_to_put_here} * 0.039",
            write = "? / 0.039")
    private int priceInUSD;
}

在我的数据库中,我将价格存储在 UAH 中,在我的Java代码中,我将其存储在 USD 中。 我知道这是一个有点愚蠢的例子,但仍然......

问题是当我使用hibernate' @ColumnTransformer时,我必须在read属性中指定列名(例如" price_in_uah * 0.039"),但由于@AttributeOverride注释,列 名字可以改变。

那么,我可以用什么来代替{dont_know_what_to_put_here}标签?

0 个答案:

没有答案
相关问题