我正在学习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}
标签?