java - 在 JPA 转换器中获取属性名或列名

标签 java jpa converters

我有一个具有多个 double 值的实体,其中每个值在存储之前都必须乘以某个因子。

我想使用(单个)JPA 转换器将属性与特定因子相乘,但因此我需要知道我在转换器函数中转换的是哪个属性。

有没有办法在转换器函数中获取属性名称或列名称或将其传递给转换器?

最佳答案

我不知道你的实体是什么样子,但也许 @Access 注释可能会有帮助——当你需要在读取或写入数据库时​​对数据执行简单转换时可以使用它(在这种情况下乘法在保存之前通过 setter 发生,但 getter 给出存储在 db 中的确切值)。不便之处在于您需要在每个需要此转换的 setter 上添加它:

@Entity
@Access(AccessType.FIELD)
public class Item {

    private static final long FACTOR = 5;

    @Id
    private long id;

    private String name;

    @Transient
    private long amount;

    // getter and setters for id and name

    @Access(AccessType.PROPERTY)
    public long getAmount() {
        return amount;
    }

    public void setAmount(long amount) {
        this.amount = amount * FACTOR;
    }
}

关于java - 在 JPA 转换器中获取属性名或列名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32741368/

相关文章:

java - 如何使用 BaseX 将任意 JSON 转换为 XML?

java - JSF ajax 和自定义转换器

hibernate - JPA + Hibernate count(*) 使用 CriteriaBuilder - 带有 generatedAlias

java - 使用java将docx转换为doc

java - 在 Maven 中使用 Java 10 的 Groovy 2.5.3

java - 保留 lib 文件夹内未更改的 jar 的时间戳

java - Spring Data JPA 规范 groupBy

java - 将 JPA 实体转换为映射

Java:解析时跳过xml文件中的二进制数据

java - 为什么在该路径中创建该文件?