使用它们时的注意:
1.Query 没有addScalar()和addEntity()方法,使用Query的子接口SQLQuery才有这两个方法
2.如果查询的结果集的字段为多个,如:
String sql = "select id as \"id\",iata as \"iata\",flight as \"flight\",dest as \"dest\",domint as \"domint\" " +
" ,sdt as \"sdt\",task_nature as \"taskNature\",est_date as \"estDate\",act_date as \"actDate\",remark as \"remark\" " +
" from FIDS_DEPF";
则如果只
addScalar("sdt", Hibernate.TIMESTAMP)(
之所以为Date类型的sdt做addScalar操作,是因为不做这个操作的情况下会有时分秒丢失情况的发生):
this.getSessionFactory().getCurrentSession().createSQLQuery(sql)
.addScalar("sdt", Hibernate.TIMESTAMP)
.setResultTransformer(Transformers.aliasToBean(FidsDepfDto.class))
.list();
则返回的FidsDepfDto 的list结果集中,将只用sdt有值,其他都为null!所以,
在使用addScalar()时,select的每个字段都必须要addScalar()!
addEntity和ResultTransformer 的区别:
addEntity(Class clazz)的参数Clazz必须是被hibernate管理的持久化bean!否则会报
MappingException: Unknown entity。如下面代码是不行的(这里的FidsDepfDto是一个不受hibernate管理的非持久化对象(just a dto,not PO!))
this.getSessionFactory().getCurrentSession().createSQLQuery(sql).addEntity(FidsDepfDto.class)
而ResultTransformer可以接受一个任意的bean,只要这个bean的属性(严格说是setXxx()中的xxx)与select的结果集列名存在对应关系:
http://docs.jboss.org/hibernate/core/3.3/reference/en/html/querysql.html#d0e13904引用
It is possible to apply a ResultTransformer to native SQL queries, allowing it to return non-managed entities.
分享到:
相关推荐
c#读取CAD的dxf文件,包括样式,颜色,存储文件,只要需要的都能有,,并直接存csv文件
IndexedDB ORM /包装器 该项目仍处于Alpha状态,某些情况可能会发生变化 该项目的目的是简化IndexedDB数据库的工作。 当前,我们依赖于但根据反馈,我们将删除或保留此依赖关系。... addEntity ( exampleDef ,
实现dxf文件的解析功能,可实现版本的不同
becs-位屏蔽的ECS 快速简单的ECS库。 在引擎盖下使用位屏蔽以提高性能。 用法 npm install --save becs import { System , // Choose one from the following ... addEntity ( { Position : { x : 1 , y : 2
原创代码:对netdxf类库扩展的示例,构建你自己的dxf文件处理类。 C# public void AddText(string text, Vector3 position, double height,... this.AddEntity(new Text(splitstr[i], pos, height, style)); } }
uniVocity-kairosdb 带有自定义数据存储的示例项目,使能够访问 KairosDB 编码 创建自定义数据存储时,至少需要... kairosConfig.addEntity("observations", "observationKind"); EngineConfiguration engineConfig
这是一套ecs游戏框架,里面包含ECS框架用于管理场景实体,一些常用2D碰撞检测及游戏中常用的工具项目规划及讨论交流群点击链接...您需要在场景内进行创建或添加实体(createEntity / addEntity)注意:创建实体需要在场
dxf.AddEntity(entity); // save to file dxf.Save(file); // this check is optional but recommended before loading a DXF file DxfVersion dxfVersion = DxfDocument.CheckDxfFileVersion(file); // ...
MaltegoTransform-Python 免责声明:这不是我... addEntity ( "maltego.Phrase" , "hello world" );me . returnOutput ()读取输入这是显示从实体读取输入并将其返回到图形的简单转换(在这种情况下使用域并返回包含该域
export let addEntity = ( entityArray , child ) => { // if has no parent - add to the top level if ( ! child . parentId ) { return [ ... entityArray , child ] ; } // trace path to parent ...
core-spring-boot-autoconfigure spring boot自动化配置,封装第三方如百度鹰眼、阿里云api...public void addEntity() throws Exception { int serviceId = baiduProperties.getServiceIds().get(0); String entity