我有一个DSL Java对象,即在setter中返回this
的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。
或者有没有办法告诉JPA在使用CURRENT TIMESTAMP
创建新对象时使用created == null
?
答案 0 :(得分:0)
根据JPA规范(参见JSR-220)第2.1.1节,您可以告诉JPA使用字段访问而不是属性访问,方法是注释字段以获取映射信息,而不是getter方法。
我认为你不能告诉JPA哪个命名约定用于getter和setter,因为它是一个基本的java bean概念。
答案 1 :(得分:0)
当你在课堂上定义时,你不能简单地初始化created
,然后使用字段访问。
private Date created = new Date();