0

電子メール、パス、および作成日を含む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がありますが、これを行う方法について混乱しています。

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をパラメーターとしてInsertSQLクエリに渡します。

于 2013-02-08T06:40:56.830 に答える