hibernate中sql查询 字段如何与属性映射
2021-08-18 14:50
316 查看
在维护旧的项目时,由于好久没有使用hibernate,导致很多都比较生疏。自己写sql 查询字段和对象中的属性 需要一一映射。
使用jdbcTemplate.queryForObject()等方法时,有可能报错:Incorrect column count: expected 1, actual 5
1.反例:
StringBuffer sql = new StringBuffer(); sql.append("select pcb.bid, pcb.brand, pcb.brand_code brandCode, pcb.bra_country braCountry, pcb.identifying_photo identifyingPhoto, pcb.bra_letter braLetter, pcb.last_operator_name lastOperatorName,"); sql.append(" pcb.last_operator_id lastOperatorId, pcb.parent_id parentId, pcb.create_time createTime, pcb.update_time updateTime"); sql.append(" from platform_carbrand subpcb inner join platform_carbrand pcb on subpcb.parent_id = pcb.bid"); sql.append(" where subpcb.bid = " + subBrandId);
Carbrand carbrand = jdbcTemplate.queryForObject(sql.toString(), Carbrand.class);
2.解决方式 通过查询多条或一条的正例:
List<Carbrand> carbrandList = jdbcTemplate.query(sql.toString(), new Object[]{}, new BeanPropertyRowMapper<Carbrand>(Carbrand.class)); if (CollectionUtils.isEmpty(carbrandList)) { return null; } return carbrandList.get(0);
.
相关文章推荐
- 在使用Hibernate时,因为一个查询需要更多的表连接而要使用SQL来解决性能问题。然而返回的结果集中包含了没有映射的Entity类中的表字段,在这个SQL中还有使用如何将层次关系的父子结点显示为横行
- 在hibernate中,如何把原生sql查询出来的结果映射到实体bean
- Hibernate之使用sql语句查询多个表,返回多种字段,将返回结果映射到自定义的普通pojo类中
- Hibernate中sql联合多个表查询,并将结果映射成多个实体,再取实体的属性封装到一个bean中...
- hibernate中的query查询原生sql语句,如何获得返回记录中的每一个字段的值
- MSSQL中如何用SQL语句查询字段类型?
- 实际——如何给SQL查询添加合计行(sqlserver2008。但是db2的case when 语句end后不能添加其他字段)
- 如何用SQL语句查询一个数据表所有字段的类型
- Hibernate中如何用HQL查询部分字段
- Hibernate的createSQLQuery 查询数据库类型为char的字段时要注意
- Hibernate 查询多个字段返回的list如何转为自定义对象
- Hibernate原生SQL多表查询字段名重复问题
- 用SQL查询表中字段的属性2000和2005均有
- 查询两个表的字段属性差异的sql语句
- Hibernate 4.x 如何映射oracle Clob字段?
- hibernate使用createQuery(hql)语句仅查询部分字段,应如何获得数据
- Hibernate注解映射字段的位置到底应该放在属性还是方法上
- Hibernate原生SQL多表查询字段名重复问题
- hibernate映射数据库表如何使表中字段默认值生效
- 查询两个表的字段属性差异的sql语句