我使用eclipseLink和derby DB,当我使用时遇到以下错误
提交(entityManager.getTransaction().commit();
)字段来自的定义
具有java util日期的实体。
这有什么不对?
输入数据的代码是:
Date date = new Date();
SimpleDateFormat parsedDate = new SimpleDateFormat("yyyy-mm-dd");
date = parsedDate.parse((String) memberValue);
成员值包含具有以下值的日期
"from": "2012-12-03"
"to": "2012-12-03"
实体看起来如下
@Entity
@Table(name = "f1_LeaveRequest")
public class LeaveRequest {
@Id
@Column(name = "leaverequest_id")
private String id;
private String type;
@Temporal(TemporalType.TIMESTAMP)
private java.util.Date from;
@Temporal(TemporalType.TIMESTAMP)
错误是:
Exception in thread "main" javax.persistence.RollbackException: Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.3.2.v20111125-r10461): org.eclipse.persistence.exceptions.DatabaseException
Internal Exception: java.sql.SQLSyntaxErrorException: Syntax error: Encountered "FROM" at line 1, column 47.
Error Code: 20000
Call: INSERT INTO f1_LeaveRequest (leaverequest_id, FROM, LENGTH, STATE, TO, TYPE) VALUES (?, ?, ?, ?, ?, ?)
bind => [6 parameters bound]
答案 0 :(得分:2)
您可以使用@Column
注释标记该字段,并为其提供不同的名称。
@Column(name ="from_timestamp")
@Temporal(TemporalType.TIMESTAMP)
private Date from;
答案 1 :(得分:1)
我想这是因为FROM
是SQL中的保留关键字。尝试将您的字段重命名为fromDate
或fromTimestamp
,或者查看问题是否以这种方式解决。
答案 2 :(得分:1)
FROM
是保留关键字。使用有意义的内容,例如fromTime
。