簡體   English   中英

是否可以使用JPA保留DSL Java對象?

[英]Is it possible to persist a DSL Java object with JPA?

我有一個DSL Java對象,即POJO, this以設置方法返回this對象,而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()”用作設置器/獲取器方法?

[編輯]我的問題是上面的created字段。 對於此字段,我希望JPA使用“ getter” created()因此該字段將始終為非NULL。

還是有一種方法可以讓JPA在創建帶有created == null的新對象時使用CURRENT TIMESTAMP

根據JPA規范(請參閱JSR-220 )的第2.1.1章,您可以通過注釋字段以映射信息而不是getter方法來告訴JPA使用字段訪問而不是屬性訪問。

我認為您不能告訴JPA哪種命名約定用於getter和setter,因為它是Java Bean的基本概念。

您是否不能簡單地初始化在類中定義時created的內容,然后使用字段訪問。

private Date created = new Date();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM