0

我有一个 DSL Java 对象,即this在 setter 中返回的 POJO 加上 getter/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(String)”和“name()”作为 setter/getter 方法?

[编辑] 我的问题是created上面的字段。对于此字段,我希望 JPA 使用“getter” created(),因此该字段将始终为非 NULL。

或者有没有办法告诉 JPACURRENT TIMESTAMP在创建新对象时使用created == null

4

2 回答 2

0

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

我认为您不能告诉 JPA 为 getter 和 setter 使用哪种命名约定,因为它是一个基本的 java bean 概念。

于 2009-05-19T11:50:15.383 回答
0

当你在类中定义时,你能不能简单地初始化created,然后使用字段访问。

private Date created = new Date();
于 2009-05-19T13:04:06.857 回答