2012-03-05 48 views
3

當使用JPA和EclipseLink從視圖中提取日期時,我在SQL數據中的日期前兩天獲取日期。 (即1965年1月1日成爲1964年12月30日和1998-12-31成爲1998年12月29日)與JPA,EclipseLink和SQL Server 2008 R2的兩天差異

我測繪日期字段在SQL Server 2008 R2與以下注釋:

@Entity 
@Table(name = "vw_Record") 
@XmlRootElement 
public class VwRecord implements Serializable { 
    @Column(name = "dateStart") 
    @Temporal(TemporalType.DATE) 
    private Date dateStart; 

    @Column(name = "dateEnd") 
    @Temporal(TemporalType.DATE) 
    private Date dateEnd; 

SQL Server中的列被定義爲:

[dateStart] [date] NULL, 
[dateEnd] [date] NULL 

任何爲什麼我得到一個一致的2天差異的想法?

回答

1

EclipseLink不做任何轉換,它很可能發生在JDBC中。

您可以嘗試通過JPA執行本機SQL查詢並查看它返回的數據。另請嘗試通過原始JDBC選擇數據。

+0

JPA原生SQL查詢與JDBC調用的做法相同。看起來像微軟的JDBC驅動程序有問題。謝謝。 – PaulNBN 2012-03-05 15:54:05

+0

http://blogs.msdn.com/b/jdbcteam/archive/2012/01/20/hotfix-available-for-date-issue-when-using-jre-1-7.aspx獲取更多信息和修補程序。 – PaulNBN 2012-03-05 16:00:50