0

我有一个 mysql 数据库,其中包含电子邮件、通行证和创建日期。

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

从实体类创建 jsf 页面。

账户.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根据创建帐户的时间自动生成,但我对如何执行此操作感到困惑。

4

2 回答 2

2

将此功能添加到Account.java

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

此函数将在您持久化实体之前自动执行。

于 2013-02-08T06:44:28.103 回答
0

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

<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 作为参数传递给您的插入 SQL 查询。

于 2013-02-08T06:40:56.830 回答