键入从DAO到控制器的转换

时间:2016-05-17 10:40:12

标签: java hibernate spring-mvc

我陷入了以下问题。我试图追查但不能。 你能帮我们帮忙解决这个问题。

在我的控制器中:

Long id = '1425652';
Collection<Long> propIds =  externalTaxManager.getPropertyIdsByTaxId(id); // I have an issue here
Map<Long, Long> propIdToOnegIdMap = externalTaxManager.mapPropertiesToOnegIds(propIds);

在我的DaoImpl中:

public Collection<Long> getPropertyIdsByTaxId(Long externalTaxId){
        SQLQuery query = currentSession().createSQLQuery("select b.OMH_PROPERTY_ID from OMH.OMH_EXTERNAL_TAX a , OMH.OMH_EXTERNAL_TAX_PROP_XREF b\n" +
                "where a.OMH_EXTERNAL_TAX_ID=b.OMH_EXTERNAL_TAX_ID and a.OMH_EXTERNAL_TAX_ID= :externalTaxId ");
        query.setParameter("externalTaxId", externalTaxId);
        List<Long> result = query.list();
        return result;
}

这里,b.OMH_PROPERTY_ID是长类型。对于我们传递的每个externalTaxId,DB中有超过1000条记录。

但是当我从DAO返回到Controller时,存在类型不匹配的问题。我需要propIds Collection&lt;龙&GT;仅

错误堆栈跟踪:

/ExternalTaxManagerImpl.java:421: cannot find symbol
symbol  : method getPropertyIdsByTaxId(java.lang.Long)
location: interface com.orbitz.omh.property.das.svc.ExternalTaxDataService
        return externalTaxDataService.getPropertyIdsByTaxId(externalTaxId);

提前致谢。

1 个答案:

答案 0 :(得分:0)

Long id = '1425652'; This is Invalid character constant

将上述声明更改为

Long id = 1425652l; 

注意:请确保将“l”保留在数字的末尾,以将其标识为Long数据类型。