如何使用JPA将SQLServer2008日期读入Java
我需要使用java.util.Calendar,以便Axis2 webservice客户端发送/接收日期对象。因此,在我的JPA模型对象中,我将所有java.sql.Date更改为java.util.Calendar。通过使用java.util.Calendar,Axis2 Web服务部件可以正常工作 我能够将java.util.Calendar对象保存到数据库中。问题是我无法从数据库中读回对象 尝试从SQL Server 2008读取保存的对象时,出现以下错误:如何使用JPA将SQLServer2008日期读入Java,java,sql-server-2005,hibernate,jpa,axis2,Java,Sql Server 2005,Hibernate,Jpa,Axis2,我需要使用java.util.Calendar,以便Axis2 webservice客户端发送/接收日期对象。因此,在我的JPA模型对象中,我将所有java.sql.Date更改为java.util.Calendar。通过使用java.util.Calendar,Axis2 Web服务部件可以正常工作 我能够将java.util.Calendar对象保存到数据库中。问题是我无法从数据库中读回对象 尝试从SQL Server 2008读取保存的对象时,出现以下错误: An error occurr
An error occurred while converting the nvarchar value to JDBC data type TIMESTAMP.
在数据库中,无法读取的日期字段类型为“日期”。另外,如果在数据库中,我将日期字段改为“datetime”,它可以正常工作,但我必须使用“date”类型。有人知道如何解决这个问题吗
因此,在我的JPA模型对象中,我将所有java.sql.Date更改为java.util.Calendar
无论如何,在域对象中使用java.sql.Date
并不是一个好主意
在数据库中,无法读取的日期字段类型为“日期”。另外,如果在数据库中,我将日期字段改为“datetime”,它可以正常工作,但我必须使用“date”类型。有人知道如何解决这个问题吗
可能您的日历
没有正确注释,请按如下方式更改:
@Temporal(TemporalType.DATE)
private java.util.Calendar someDate;
以下是JPA 1.0规范的相关章节:
9.1.20时间注释
时间注释必须是
为持久性字段或
类型为java.util.Date
和java.util.Calendar
。可能只是
必须为字段或属性指定
这些类型的
可以使用时态
注释
与基本
注释
TemporalType
enum定义
这些时态类型的映射
public enum TemporalType {
DATE, //java.sql.Date
TIME, //java.sql.Time
TIMESTAMP //java.sql.Timestamp
}
工具书类
- JPA1.0规范
- 第9.1.20节“时间注释”