我有一个dsl java对象,即返回的pojo this 在Setters中,Geters/Setter具有不寻常的命名模式:

public class Demo {
    private long id;
    private String name;
    private Date created;

    public Demo id (long value) { id = value; return this; }
    public String id () { return id; }
    public Demo name (String value) { name = value; return this; }
    public String name () { return name; }
    public Demo created (Date value) { created = value; return this; }
    public Date created () { 
        if (created == null) created = new Date ();

        return created;
    }

}

是否可以告诉JPA使用“名称(字符串)”和“ name()”作为setter/getter方法?

编辑]我的问题是 created 上面的字段。对于此字段,我希望JPA使用“ Getter” created() 因此,该领域将永远是非零的。

还是有办法告诉JPA使用 CURRENT TIMESTAMP 当创建一个新对象时 created == null?

有帮助吗?

解决方案

根据JPA规格(请参阅 JSR-220)第2.1.1章,您可以告诉JPA使用字段访问,而不是通过注释字段来映射信息而不是Getter方法来使用属性访问。

我认为您无法告诉JPA,因为这是一个基本的Java Beans概念,因此要用于Getters和Setters哪个命名约定。

其他提示

你不能简单地直觉 created 当您在课堂中定义时,然后使用字段访问。

private Date created = new Date();
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top