如何通过配置自动实现ValueList中hql语句的整型参数转换
2023-06-13 09:15:02 时间
通过valuelist的queryMap传递过来的参数默认都为string类型,在valuelist配置文件的hql中,如果直接将该值赋给整型的字段会报错。一般我们会在hql中利用转型函数来进行处理,如下:
复制代码代码如下:
<entrykey="areasInfoAdapter">
<bean parent="abstractHibernate30Adapter">
<propertyname="defaultNumberPerPage"><value>19</value></property>
<propertyname="statementBuilder"><refbean="statementBuilderHql"/></property>
<propertyname="defaultSortColumn"><value>id</value></property>
<propertyname="defaultSortDirection"><value>desc</value></property>
<propertyname="hql">
<value>
fromcom.berheley.hcms.persistence.model.TBaseAreasastb
wheretb.status="1"
/~hId :andtb.hId =to_number{hId} ~/
/~oId :andtb.oId =to_number{oId} ~/
orderbytb.codeasc
</value>
</property>
<propertyname="defaultFocusPropertyObjectAlias"><value>vo</value></property>
<propertyname="maxRowsForFocus"><value>160000</value></property>
<propertyname="removeEmptyStrings"><value>true</value></property>
</bean>
</entry>
该方法比较麻烦,在所有的整型字段地方都需要添加函数处理,并且进行数据库迁移时会出现函数不兼容的问题。可以利用ValueList配置来对整型的字段进行统一设置,valuelist在拼装sql前会对配置好的参数进行转型。如下:
<beanid="integerSetterHql"class="net.mlw.vlh.adapter.hibernate3.util.setter.IntegerSetter"></bean>
<beanid="statementBuilderHql"class="net.mlw.vlh.adapter.hibernate3.util.StatementBuilder">
<propertyname="setters">
<map>
<entrykey="uId"><refbean="integerSetterHql"/></entry>
<entrykey="oId"><refbean="integerSetterHql"/></entry>
</map>
</property>
</bean>
相关文章
- 深入SQL执行计划之CBO查询转换(4):Group By 配置最优机能(Group By Placement)
- js 符号转换 html代码
- 十进制小数转换为二进制[通俗易懂]
- Java中二进制转换的多种方法
- Premiere Pro 2022 for Mac(pr)更新字幕转换包中文版
- 转换MySQL数据表类型转换: 极速变化、妙用无穷(mysql数据表类型)
- Linux C编程: 时间转换技术(linuxc时间转换)
- MySQL中将毫秒数转换为日期格式(mysql毫秒转日期)
- SQL Server中字符串转换为日期的方法(sqlserver字符串转换成日期)
- Oracle迁移表:实现数据转换的关键之一(oracle迁移表)
- Linux字符串转换:从简单到复杂(linux字符串转换)
- Oracle内置转换函数利用它实现数据转换(oracle内置转换函数)
- java和json对象间转换