我有一个包含电子邮件,通行证和日期的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
,但我对如何执行此操作感到困惑。
答案 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查询。