Я переписал этот вопрос, чтобы прояснить.
У меня есть такая сущность:
@Entity
@NamedQueries({
@NamedQuery(
name = "myObj.findCurrentUsingFunction",
query = "from MyObj where insertDate = current_date() "),
@NamedQuery(
name = "myObj.findCurrentUsingParameter",
query = "from MyObj where insertDate = :currentDate")
})
public class MyObj {
@Id @GeneratedValue @Column
private Long id;
@Column @Temporal(TemporalType.DATE)
private Date insertDate;
/* getter, setter */
}
У меня тест на неудачу:
@Test
public void findCurrentUsingFunction() throws Exception {
final MyObj myObj = new MyObj();
myObj.setInsertDate(new Date());
final Session session = dao.getSessionFactory().getCurrentSession();
session.saveOrUpdate(myObj);
final Query namedQuery =
session.getNamedQuery("myObj.findCurrentUsingFunction");
final List results = namedQuery.list();
Assert.assertEquals("size",1L, (long) results.size());
}
Hibernate: выберите hibernate_sequence.nextval из двойного Hibernate:
вставить в MyObj (insertDate, id) значения (?,?) Hibernate: выбрать
myobj0_.id как id0_, myobj0_.insertDate как insertDate0_ из MyObj
myobj0_, где myobj0_.insertDate = current_date
java.lang.AssertionError: ожидаемый размер: <1>, но был: <0>
и прохождение теста
@Test
public void findCurrentUsingParameter() throws Exception {
final MyObj myObj = new MyObj();
myObj.setInsertDate(new Date());
final Session currentSession = dao.getSessionFactory().getCurrentSession();
currentSession.saveOrUpdate(myObj);
final Query namedQuery =
currentSession.getNamedQuery("myObj.findCurrentUsingParameter");
namedQuery.setDate("currentDate", new Date());
final List results = namedQuery.list();
Assert.assertEquals("size",1L, (long) results.size());
}
диалект:
hibernate.dialect = org.hibernate.dialect.Oracle10gDialect