0

Использование подхода EntityManager с Hibernate. Всякий раз, когда я использую запрос поля даты, я ожидаю, что он будет искать дату с полными датами и временем, но она использует только дату, а не время.entityManager не работает с параметром Date

where cou0_.expiry_date>'22-Jan-16' 

весна конфигурации

<bean id="entityManagerFactory" 
     class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"> 
     <property name="dataSource" ref="dataSource" /> 
     <property name="packagesToScan" value="com" /> 
     <property name="jpaVendorAdapter"> 
      <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter" /> 
     </property> 
     <property name="jpaProperties"> 
      <props> 
       <prop key="hibernate.hbm2ddl.auto">${hibernate.hbm2ddl.auto}</prop> 
       <prop key="hibernate.dialect">${hibernate.dialect}</prop> 
       <prop key="hibernate.show_sql">${hibernate.show_sql}</prop> 
       <prop key="hibernate.cache.use_second_level_cache">${hibernate.cache.use_second_level_cache}</prop> 
       <prop key="hibernate.cache.use_query_cache">${hibernate.cache.use_query_caches}</prop> 
       <prop key="hibernate.cache.region.factory_class">${hibernate.cache.region.factory_class}</prop> 
       <prop key="hibernate.generate_statistics">${hibernate.generate_statistics}</prop> 
       <prop key="hibernate.use_sql_comments">${hibernate.use_sql_comments}</prop> 
      </props> 
     </property> 
    </bean> 

Подпорки

hibernate.hbm2ddl.auto = update 
hibernate.dialect = org.hibernate.dialect.MySQL5Dialect 
hibernate.c3p0.min_size = 5 
hibernate.c3p0.max_size = 10 
hibernate.c3p0.timeout = 300 
hibernate.c3p0.max_statements = 50 
hibernate.c3p0.idle_test_period = 3000 
hibernate.generate_statistics = true 
hibernate.show_sql=true 
hibernate.use_sql_comments=true 

Колонка объявлена ​​как

@Temporal(TemporalType.TIMESTAMP) 
    @Column(name = "expiry_date") 
    private Date expiryDate; 

запроса Код

Query query = getEntityManager().createQuery("from **** where c.expiryDate > :expiryDate"); 
     Date now = new Date(); 
     now.setHours(8); 
     System.out.println("Date--"+now); 
     query.setParameter("expiryDate", now,TemporalType.TIMESTAMP); 
     List<****> entity = query.getResultList(); 
+0

Дайте повод для маркировки -1 –

+0

В вашем запросе показан «c.lastUpdated>: expiryDate», но ваше сопоставление и то, что я предполагаю, это SQL-шоу "expiry_date" – Chris

+0

спасибо @ Крис обновил мой вопрос. –

ответ

0

Проблема не с менеджером объекта. Это было со шпионом, который я использовал для отслеживания запроса. Spy имеет настраиваемое свойство для отображения дат в формате. Я не настроил его так, чтобы он хотел использовать формат по умолчанию, т. Е. Dd-MMM-yyyy

Смежные вопросы