最近在工作中尝试使用Criteria来代替hql的功能,为什么呢?因为觉得到处使用hql,尤其是比较复杂的查询,就有种使用jdbc的感觉.
在使用Expression.eq(String propertyName, Object value)方法的时候,出现了一个java.lang.ClassCastException: java.lang.String异常,很郁闷,看不出来是什么地方出了问题?后来,不知怎么就找到了这个错误原因
原来是eq方法的第二个参数类型应该使用与PO对象中此字段相同的类型,虽然在这里这个方法是Object类型.
示例代码(错误使用方式):
crit.add(Expression.eq("listId", String.valueOf(listId)));
代码代码(正确使用方式):
crit.add(Expression.eq("listId", listId));
主键值listId是Long类型,参数value的类型只能是Long,不可以是String类型
分享到:
相关推荐
1. `Expression.eq(String propertyName, Object value)`:这个方法用于创建等于(=)条件,例如`"field = value"`。例如:`Expression.eq("id", "001")`,它等价于SQL中的`WHERE ID = '001'`。 2. `Expression....
在现代的Spring应用程序中,整合Hibernate时,我们通常会选择使用Spring的IoC(Inversion of Control)容器来管理数据访问层,而不是直接依赖于Hibernate的配置文件`hibernate.cfg.xml`。这是因为Spring提供了更高级...
理解并正确配置Hibernate的`.hbm.xml`和`hibernate.cfg.xml`文件是使用Hibernate的关键步骤。`.hbm.xml`文件负责对象-关系的映射,`hibernate.cfg.xml`文件则包含了整个应用程序的数据库连接和其他配置。通过阅读...
在这里,我们使用了Spring的PropertyPlaceholderConfigurer来解析`hibernate.properties`中的属性,并注入到`LocalSessionFactoryBean`的配置中。`mappingResources`属性则用来指定Hibernate的映射文件,这些文件...
hibernate.cfg.xml hibernate框架的配置文件
- 例如,`criteria.add(Expression.eq("propertyName", value))`会生成对应的SQL `WHERE propertyName = value`。 2. **Expression对象**: - `Expression.eq`: 生成等于(`=`)的条件,如`Expression.eq("name", ...
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property> ``` **说明**:方言配置用于告诉 Hibernate 使用哪种数据库特定的 SQL 语法。例如,对于 MySQL 数据库,通常会使用 `org....
<property name="hibernate.cache.region.factory_class">org.hibernate.cache.ehcache.EhCacheRegionFactory</property> 3.3配置如下: <property name="hibernate.cache.use_second_level_cache">true</property>...
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property> <property name="hibernate.show_sql">true</property> ``` 3. **SessionFactory配置**:SessionFactory是Hibernate的核心...
- **URL**: `<property name="hibernate.connection.url">jdbc:mysql://localhost/hibernate</property>` 设置了连接数据库的URL,其中`localhost`表示MySQL服务器地址,`hibernate`为数据库名。 - **Username**: `...
在这个场景中,我们将探讨如何在不使用`hibernate.cfg.xml`配置文件的情况下整合Spring和Hibernate。 通常,Hibernate通过`hibernate.cfg.xml`文件来配置数据库连接、实体类映射等信息。但在Spring中,我们可以利用...
<property name="hibernate.c3p0.idle_test_period">3000</property> <property name="hibernate.c3p0.acquireIncrement">3</property> <property name="hibernate.c3p0.max_statements">50</property> <property ...
在Java的持久化框架Hibernate中,`hibernate.hbm.xml`文件是至关重要的,它定义了Java对象与数据库表之间的映射关系,使得对象模型能够与关系型数据库无缝对接。这篇文章将深入解析`hibernate.hbm.xml`的结构和主要...
例如,我们可以使用`Expression.eq("propertyName", value)`来创建一个等于某个值的条件,或者使用`Expression.between("propertyName", start, end)`来创建一个属性值在指定范围内的条件。 接下来,我们将探讨...
- `Expression`:用于构建查询条件,如 ` Restrictions.eq("propertyName", value)` 表示“属性等于值”。 ### 2. 添加查询条件 Criteria API 支持多种条件表达式,例如: - `eq(String propertyName, Object ...
sessionFactory.addElement("property").addAttribute("name", "hibernate.dialect").setText("org.hibernate.dialect.MySQL5Dialect"); // 添加其他属性和子元素... ``` 2. **读取hibernate.cfg.xml** 读取XML...
2.2、打开此文件,将“<property name="hibernate.connection.url">jdbc:sqlite:D:/EGSDatabase.egsdata</property>”一行中的数据库文件("D:/EGSDatabase.egsdata")修改为合适的数据库文件。 注:附件包含了...
标题中的“Jdom生成hibernate.cfg.xml和读取其中内容”涉及到两个主要知识点:一是JDOM库在Java中解析和生成XML文档的应用,二是利用JDOM操作Hibernate配置文件`hibernate.cfg.xml`。 首先,JDOM是Java Document ...