使用当前日期创建一个帐户

时间:2013-02-08 06:35:48

标签: jpa

我有一个包含电子邮件,通行证和日期的mysql数据库。

我已经从数据库中导入了实体类。

从实体类创建jsf页面。

account.java

@NotNull
    @Size(min = 1, max = 45)
    @Column(name = "email")
    private String email;
    @Basic(optional = false)

@NotNull
    @Size(min = 1, max = 8)
    @Column(name = "login_type")
    private String loginType;
    @Size(max = 45)
    @Column(name = "pwd")
    private String pwd;
    @Basic(optional = false)

@NotNull
    @Column(name = "create_date")
    @Temporal(TemporalType.TIMESTAMP)
    private Date createDate;
    @Basic(optional = false)

系统应根据帐户的创建时间自动生成createDate,但我对如何执行此操作感到困惑。

2 个答案:

答案 0 :(得分:2)

将此功能添加到Account.java

@PrePersist
public void createdAt() {
    this.createDate = new Date();
}

此功能将在您保留实体之前自动执行。

答案 1 :(得分:0)

从xhtml页面中删除以下代码。不要将Date作为最终用户的输入参数。

<h:outputLabel value="#{bundle.CreateAccountLabel_createDate}" for="createDate" />
                    <h:inputText id="createDate" value="#{accountController.selected.createDate}" title="#{bundle.CreateAccountTitle_createDate}" required="true" requiredMessage="#{bundle.CreateAccountRequiredMessage_createDate}">
                        <f:convertDateTime pattern="yyyy/mm/dd HH:mm:ss" />
                    </h:inputText>

相反,在托管bean中,当您调用添加用户的方法时,请将Sysdate作为参数传递给Insert SQL查询。