我在一个类中有以下代码,它扩展了Primefaces的LazyDataModel
@Override
public List<Project> load(int first, int pageSize,
String sortField, SortOrder sortOrder, Map<String, String> filters) {
在上面的过滤器是类型Map
在Hibernate实体类中,我有以下内容
private Long projectNo; // with getters and setters
在DAO类中,我还可以在JSF页面中进行搜索并返回结果
public void getProjects(ProjectQueryData data) {
Map<String, String> filters = data.getFilters();
// ....
....
String projectNo = filters.get("projectNo");
List<Predicate> criteria = new ArrayList<Predicate>();
if (projectNo!= null) {
ParameterExpression<String> pexp = cb.parameter(String.class,
"projectNo");
Predicate predicate = cb.equal(emp.get(Project_.projectNo),
pexp);
criteria.add(predicate);
}
TypedQuery<Project> q = entityManager.createQuery(c);
TypedQuery<Long> countquery = entityManager.createQuery(countQ);
q.setParameter("projectNo", projectNo); // error in this line
countquery.setParameter("projectNo", projectNo);
当我执行上述操作时,我得到以下异常
Hibernate Parameter value [89457] did not match expected type [java.lang.Long]
因为
projectNo
的长度很长。
我的问题是我怎样才能投射
Map
任何帮助都是值得赞赏的。
谢啦
您不能强制转换Map
在这种情况下,您似乎还可以通过将其强制转换为字符串或在Map中设置之前很久实现修复,
String.valueOf(projectNo);
or
Long.toString(projectNo);
在需要的地方。
我收到编译器错误无法解析方法“get key()”
问题内容: 我有一些要转换成的属性 我可以从json.org或使用什么吗? 问题答案: 使用来自http://json.org/的 Jackson(http://jackson.codehaus.org/)
问题内容: 像这样转换JSON代码的最佳方法是什么: 在Java Map中,其中一个键为(field1,field2),而这些字段的值为(value1,value2)。 有任何想法吗?我应该使用Json-lib吗?或者,如果我编写自己的解析器会更好? 问题答案: 我希望您在开玩笑编写自己的解析器。:-) 对于这种简单的映射,http://json.org(java部分)中的大多数工具都可以使用。对
我有一个,并希望该流的每个元素都进行一些计算并将它们返回为,其中键是int值,值是该计算的结果。我写了以下一段代码: 其中,计算第m个(整数a)。我发现下一个编译器错误 我做错了什么?
问题内容: 从来源来看,我无法影响我在地图中获得的数据,该地图以表示。 我需要处理所包含的数据,最好是(其中的数据非常适合该处理)。 我还需要从数据中生成键列表,因为这些键是事先未知的。 我可以在网上找到的大多数类似问题或多或少都说这是不可能的,但是如果我的地图是,则表明数据在那里,可读性为。 我该怎么办fmt.Println可以做什么? 问题答案: 处理未知接口的一种安全方法,只需使用fmt.S
问题内容: 像这样转换JSON代码的最佳方法是什么: 在Java Map中,其中一个键为(field1,field2),而这些字段的值为(value1,value2)。 有任何想法吗?我应该使用Json-lib吗?或者,如果我编写自己的解析器会更好? 问题答案: 我希望你在开玩笑地编写自己的解析器。: 对于这样的简单映射,http://json.org(java部分)中的大多数工具都可以使用。对于