java - hibernate 不会在注册日期之前搜索信息
问题描述
我正在尝试使用日期在休眠中获取一个字段,但出现以下错误:
INFO: HHH10001501: Connection obtained from JdbcConnectionAccess [org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator$ConnectionProviderJdbcConnectionAccess@f08fdce] for (non-JTA) DDL execution was not in auto-commit mode; the Connection 'local transaction' will be committed and the Connection will be set into auto-commit mode.
Hibernate: select contato0_.id as id1_0_, contato0_.dataCadastro as datacada2_0_, contato0_.formatter as formatte3_0_, contato0_.idade as idade4_0_, contato0_.nome as nome5_0_ from Contato contato0_ where contato0_.dataCadastro=?
java.lang.ClassCastException: class java.lang.String cannot be cast to class java.util.Date (java.lang.String and java.util.Date are in module java.base of loader 'bootstrap')
at org.hibernate.type.descriptor.java.JdbcTimestampTypeDescriptor.unwrap(JdbcTimestampTypeDescriptor.java:24)
at org.hibernate.type.descriptor.sql.TimestampTypeDescriptor$1.doBind(TimestampTypeDescriptor.java:48)
at org.hibernate.type.descriptor.sql.BasicBinder.bind(BasicBinder.java:73)
at org.hibernate.type.AbstractStandardBasicType.nullSafeSet(AbstractStandardBasicType.java:276)
at org.hibernate.type.AbstractStandardBasicType.nullSafeSet(AbstractStandardBasicType.java:271)
at org.hibernate.param.NamedParameterSpecification.bind(NamedParameterSpecification.java:53)
at org.hibernate.loader.hql.QueryLoader.bindParameterValues(QueryLoader.java:682)
at org.hibernate.loader.Loader.bindPreparedStatement(Loader.java:2137)
at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:2114)
at org.hibernate.loader.Loader.executeQueryStatement(Loader.java:2046)
at org.hibernate.loader.Loader.executeQueryStatement(Loader.java:2024)
at org.hibernate.loader.Loader.doQuery(Loader.java:955)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:356)
at org.hibernate.loader.Loader.doList(Loader.java:2855)
at org.hibernate.loader.Loader.doList(Loader.java:2837)
at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2669)
at org.hibernate.loader.Loader.list(Loader.java:2664)
at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:540)
at org.hibernate.hql.internal.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:400)
at org.hibernate.engine.query.spi.HQLQueryPlan.performList(HQLQueryPlan.java:219)
at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1443)
at org.hibernate.query.internal.AbstractProducedQuery.doList(AbstractProducedQuery.java:1649)
at org.hibernate.query.internal.AbstractProducedQuery.list(AbstractProducedQuery.java:1617)
at org.hibernate.query.internal.AbstractProducedQuery.getSingleResult(AbstractProducedQuery.java:1665)
at org.hibernate.query.criteria.internal.compile.CriteriaQueryTypeQueryAdapter.getSingleResult(CriteriaQueryTypeQueryAdapter.java:111)
at br.com.hibernate.dao.ContatoDao.getByDataCadastro(ContatoDao.java:184)
at br.com.hibernate.aplicacao.Main.main(Main.java:50)
有没有人看到这个,我该如何解决?
public void getByDataCadastro( int dataCadastro) {
try(Session session = Util.getSessionFactory().openSession()) {
CriteriaBuilder criteriaBuilder = session.getCriteriaBuilder();
CriteriaQuery<Contato> criteriaQuery = criteriaBuilder.createQuery(Contato.class);
Root<Contato> root = criteriaQuery.from(Contato.class);
criteriaQuery.select(root);
criteriaQuery.where(criteriaBuilder.equal(root.get("dataCadastro"), dataCadastro));
TypedQuery<Contato> typedQuery = session.createQuery(criteriaQuery);
Contato contato = typedQuery.getSingleResult();
System.out.println(contato.getNome() + ", " + contato.getIdade() + ", " + contato.getDataCadastro() );
}
catch (Exception e) {
e.printStackTrace();
}
}
解决方案
推荐阅读
- css - CSS 中资产的绝对路径 URL
- amazon-s3 - 如何在没有 AWS cli 的情况下使用 s3 私有存储桶下载文件
- firebase - 在 Firebase 中用另一个文件替换文件时替换文件的所有 URL 引用 - Flutter 移动应用
- python - mysql数据库问题无法连接python
- python - 使用 softmax 作为输出函数,而使用 binary_crossentropy 作为损失函数?
- python - 使用 np.apply_along_axis 但在某些索引上
- r - 是否可以通过basicPage()而不是dashboardPage,以闪亮的方式生成像infoBox()这样的信息框?
- javascript - 从表单响应更新状态
- makefile - 如何从目录中读取源文件并将目标文件创建到 makefile 中的另一个文件夹中?
- html - 如何将网格中的所有文本垂直居中?