视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
项目从mysql迁移到oracle报错
2020-11-09 16:43:57 责编:小采
文档


mysqloracle迁移

本来没有一点错误,迁移之后出现了很多,不知道哪位大神见过下面的问题:
17:23:54,967 ERROR BasicPropertyAccessor:118 - IllegalArgumentException in class: com.ebupt.dataWarehouse.entity.dataQualityMonitoring.MonTaskConEntity, setter method of property: TemporaryIId
17:23:54,995 ERROR BasicPropertyAccessor:122 - expected type: int, actual value: java.math.BigDecimal
17:23:55,000 DEBUG ConnectionManager:325 - transaction completed on session with on_close connection release mode; be sure to close the session to release JDBC resources!
17:23:55,006 ERROR MonTaskConDao:101 - org.hibernate.PropertyAccessException: IllegalArgumentException occurred while calling setter of com.ebupt.dataWarehouse.entity.dataQualityMonitoring.MonTaskConEntity.TemporaryIId
17:23:55,009 DEBUG ConnectionManager:4 - releasing JDBC connection [ (open PreparedStatements: 0, globally: 0) (open ResultSets: 0, globally: 0)]
17:23:55,024 DEBUG ConnectionManager:325 - transaction completed on session with on_close connection release mode; be sure to close the session to release JDBC resources!
17:23:55,071 ERROR DataQualityMonitoringImpl:65 - org.hibernate.PropertyAccessException: IllegalArgumentException occurred while calling setter of com.ebupt.dataWarehouse.entity.dataQualityMonitoring.MonTaskConEntity.TemporaryIId
17:23:55,073 ERROR MonitoringTaskConfigurationAction:54 - org.hibernate.PropertyAccessException: IllegalArgumentException occurred while calling setter of com.ebupt.dataWarehouse.entity.dataQualityMonitoring.MonTaskConEntity.TemporaryIId

DAO层的相关函数是这样写的:
public List getMonTaskConList() throws Exception {
Session session = sessionFactory.openSession();
String sql = "SELECT d1.domain_id TemporaryIId, "
+ "d1.job_id TemporaryId, "
+ "d1.job_name job_name, "
+ "d1.is_effective is_effective, "
+ "d1.object_type object_type, "
+ "d1.object_name object_name, "
+ "d1.object_ename object_ename, "
+"d1.object_location object_location ,"
+"d1.time_field time_field, "
+ "COUNT(d2.rule_id) columnNum "
+ "from dq_conf_jobs d1, dq_conf_rule d2 "
//+ "where (d1.job_id = d2.job_id OR d1.job_id not in (SELECT job_id from dq_conf_rule)) AND d2.is_effective = '1'"
//+ "where ((d1.job_id = d2.job_id AND d1.domain_id = d2.domain_id) OR d1.job_id not in (SELECT job_id from dq_conf_rule)) AND d2.is_effective = '1'"
+ "where d1.job_id = d2.job_id OR d1.job_id not in (SELECT job_id from dq_conf_rule)"
//-- + "GROUP BY d1.job_id";
//非聚合函数字段都要在group by里面好像
+ "GROUP BY d1.job_id,d1.domain_id,d1.job_name,d1.is_effective,d1.object_type,d1.object_name,d1.object_ename,d1.object_location,d1.time_field";
//String sql = "";
try {
Query query = session.createSQLQuery(sql)
.addScalar("TemporaryIId")
.addScalar("TemporaryId")
.addScalar("job_name")
.addScalar("object_type")
.addScalar("object_name")
.addScalar("is_effective")
.addScalar("object_ename")
.addScalar("object_location")
.addScalar("time_field")
.addScalar("columnNum", Hibernate.INTEGER)
.setResultTransformer(Transformers.aliasToBean(MonTaskConEntity.class));
List resultList = query.list();
//查询rule总数,进行过滤
String countSql = "SELECT COUNT(*) FROM dq_conf_rule";
Query countQuery = session.createSQLQuery(countSql);
int count = ((Number) countQuery.uniqueResult()).intValue();
//数据整理,id.job_id的赋值,如果rule行数为总行数,则表明该job并没有rule
if (resultList != null && resultList.size() > 0) {
for (MonTaskConEntity entity : resultList) {
if (entity.getColumnNum() == count) {
entity.setColumnNum(0);
}
MonTaskConEntityId idEntity = new MonTaskConEntityId();
idEntity.setJob_id(entity.getTemporaryId());
idEntity.setDomain_id(entity.getTemporaryIId());
entity.setId(idEntity);

}
}
return resultList;

} catch (Exception e) {
log.error(e);
throw e;
} finally {
session.close();
}

}
目的是把表格的数据获取显现出来
谢谢大家

下载本文
显示全文
专题