TemporalType.Date 在 Oracle 中节省时间

TemporalType.Date saving Time in Oracle

我在使用来自 JPA 的 TemporalType.Date 时遇到问题。它似乎也在保存时间值,并在应用程序中选择值时从数据库中选取它。这特别在 Oracle DB

我正在使用 Hibernate 版本 4.2。20.Final-redhat-1。 甲骨文版本是11.2.0.3.0 JBoss 版本 6.4.3.GA 包含的模块:jboss-as-jpa-hibernate4-7.5.3.Final-redhat-2 和 jboss-as-jpa-hibernate3-7.5.3.Final-redhat-2 Oracle 驱动程序:12.1.0.2.0

数据库配置:

SELECT 使用:

select * from nls_database_parameters;
select * from nls_instance_parameters;
select * from nls_session_parameters;

配置:

PARAMETER                      VALUE                                  
------------------------------ ----------------------------------------
NLS_LANGUAGE                   AMERICAN                                 
NLS_TERRITORY                  AMERICA                                  
NLS_CURRENCY                   $                                        
NLS_ISO_CURRENCY               AMERICA                                  
NLS_NUMERIC_CHARACTERS         .,                                       
NLS_CHARACTERSET               AL32UTF8                                 
NLS_CALENDAR                   GREGORIAN                                
NLS_DATE_FORMAT                DD-MON-RR                                
NLS_DATE_LANGUAGE              AMERICAN                                 
NLS_SORT                       BINARY                                   
NLS_TIME_FORMAT                HH.MI.SSXFF AM                           
NLS_TIMESTAMP_FORMAT           DD-MON-RR HH.MI.SSXFF AM                 
NLS_TIME_TZ_FORMAT             HH.MI.SSXFF AM TZR                       
NLS_TIMESTAMP_TZ_FORMAT        DD-MON-RR HH.MI.SSXFF AM TZR             
NLS_DUAL_CURRENCY              $                                        
NLS_COMP                       BINARY                                   
NLS_LENGTH_SEMANTICS           BYTE                                     
NLS_NCHAR_CONV_EXCP            FALSE                                    
NLS_NCHAR_CHARACTERSET         AL16UTF16                                
NLS_RDBMS_VERSION              11.2.0.3.0                               

 20 linhas selecionadas 

PARAMETER                      VALUE                                  
------------------------------ ----------------------------------------
NLS_LANGUAGE                   AMERICAN                                 
NLS_TERRITORY                  AMERICA                                  
NLS_SORT                                                                
NLS_DATE_LANGUAGE                                                       
NLS_DATE_FORMAT                                                         
NLS_CURRENCY                                                            
NLS_NUMERIC_CHARACTERS                                                  
NLS_ISO_CURRENCY                                                        
NLS_CALENDAR                                                            
NLS_TIME_FORMAT                                                         
NLS_TIMESTAMP_FORMAT                                                    
NLS_TIME_TZ_FORMAT                                                      
NLS_TIMESTAMP_TZ_FORMAT                                                 
NLS_DUAL_CURRENCY                                                       
NLS_COMP                       BINARY                                   
NLS_LENGTH_SEMANTICS           BYTE                                     
NLS_NCHAR_CONV_EXCP            FALSE                                    

 17 linhas selecionadas 

PARAMETER                      VALUE                                  
------------------------------ ----------------------------------------
NLS_LANGUAGE                   BRAZILIAN PORTUGUESE                     
NLS_TERRITORY                  BRAZIL                                   
NLS_CURRENCY                   R$                                       
NLS_ISO_CURRENCY               BRAZIL                                   
NLS_NUMERIC_CHARACTERS         ,.                                       
NLS_CALENDAR                   GREGORIAN                                
NLS_DATE_FORMAT                DD/MM/RR                                 
NLS_DATE_LANGUAGE              BRAZILIAN PORTUGUESE                     
NLS_SORT                       WEST_EUROPEAN                            
NLS_TIME_FORMAT                HH24:MI:SSXFF                            
NLS_TIMESTAMP_FORMAT           DD/MM/RR HH24:MI:SSXFF                   
NLS_TIME_TZ_FORMAT             HH24:MI:SSXFF TZR                        
NLS_TIMESTAMP_TZ_FORMAT        DD/MM/RR HH24:MI:SSXFF TZR               
NLS_DUAL_CURRENCY              Cr$                                      
NLS_COMP                       BINARY                                   
NLS_LENGTH_SEMANTICS           BYTE                                     
NLS_NCHAR_CONV_EXCP            FALSE                    

在 MySQL 和 SQLServer 中工作得很好,在 MySQL 中是 5.5/5.6,在 SQLServer 中是 2008/2012/2014。

拜托,所有能得到的帮助都是宝贵的=D

谢谢。

看来这个题目有答案:

http://www.oracle.com/technetwork/apps-tech/jdbc-112010-090769.html

但是,如果数据库是 Oracle 11g,也会出现此问题,只需使用 Oracle 12 的驱动程序即可。

感谢您的帮助。