Можно ли сохранить объект DSL Java с помощью JPA? - PullRequest
0 голосов
/ 19 мая 2009

У меня есть объект DSL Java, то есть POJO, который возвращает this в установщиках, плюс получатели / установщики имеют необычный шаблон именования:

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 ()" в качестве метода установки / получения?

[РЕДАКТИРОВАТЬ] Моя проблема в поле created выше. Для этого поля я хочу, чтобы JPA использовал "getter" created(), поэтому поле всегда будет отличным от NULL.

Или есть способ указать JPA использовать CURRENT TIMESTAMP при создании нового объекта с created == null?

Ответы [ 2 ]

0 голосов
/ 19 мая 2009

Не могли бы вы просто инициализировать created при определении в классе, а затем использовать доступ к полю.

private Date created = new Date();
0 голосов
/ 19 мая 2009

В соответствии со спецификацией JPA (см. JSR-220 ) главы 2.1.1 вы можете указать JPA использовать доступ к полям вместо доступа к свойству, аннотируя поля для информации отображения, а не методы получателя.

Я не думаю, что вы можете сказать JPA, какое соглашение об именах использовать для геттеров и сеттеров, поскольку это базовая концепция Java-бинов.

...