小编Fal*_*oor的帖子

使用Criteria运行子查询时ClassCastException(String to Long)

首先是我的设置:

  1. mysql-connector-java 5.1.24
  2. hibernate-core 4.1.10.Final

运行此条件查询时,我遇到了ClassCastException:

Criteria sellableItemsCriteria = session.createCriteria(MarketData.class, "md");
sellableItemsCriteria.add(Restrictions.in("region", regions));
sellableItemsCriteria.add(Restrictions.in("itemTypeId", items));
DetachedCriteria sellOrderSizeCriteria = DetachedCriteria.forClass(MarketOrder.class);
sellOrderSizeCriteria.add(Restrictions.eq("marketDataId", "md.id"));
sellOrderSizeCriteria.add(Restrictions.eq("bid", false));
sellOrderSizeCriteria.setProjection(Projections.count("marketDataId"));
sellableItemsCriteria.add(Subqueries.lt(0L, sellOrderSizeCriteria));
Run Code Online (Sandbox Code Playgroud)

例外:

Caused by: java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Long
Run Code Online (Sandbox Code Playgroud)

问题来自这一行(首先我尝试使用0而不是0L而且我得到的Integer不能转换为Long以便为什么我切换到Long):

sellableItemsCriteria.add(Subqueries.lt(0L, sellOrderSizeCriteria));
Run Code Online (Sandbox Code Playgroud)

这是我想运行的mysql查询:

SELECT md.* FROM `marketdata` md
WHERE md.region IN (:regions) 
AND md.item_typeID IN (:items) 
AND (SELECT COUNT(marketData_id) FROM `marketorder` WHERE marketData_id = md.id AND bid = 0) > 0
Run Code Online (Sandbox Code Playgroud)

我该如何解决演员问题?

或者也许有更好的方法来使用Criteria?

谢谢

java mysql hibernate classcastexception hibernate-criteria

4
推荐指数
1
解决办法
3374
查看次数

我的正则表达式出了什么问题?

为什么显示此代码my/url/而不是my/url

<?php

    $url = "/my/url/";
    echo preg_replace("#^/?(.+)/?$#","$1",$url);

?>
Run Code Online (Sandbox Code Playgroud)

php regex

2
推荐指数
1
解决办法
79
查看次数

C# json DeserializeObject 继承

我有一个 Parent 类和一个 Child 类,json 字符串包含 Child 类的属性,但是当我执行 DeserializeObject 时,我无法获得这些属性,因为 Child 成为了 Parent。

例如 :

class Data {
    public List<Parent> Parents;
}

class Parent {
    public string Foo;
}

class Child : Parent {
    public string Bar;
}

var data = new Data { Parents = new List<Parent> { new Child{Bar = "a"} } };
Console.WriteLine(data.Parents.Count); // <= it prints 1
Console.WriteLine(data.Parents.OfType<Child>().Count()); // <= it prints 1

var dataJson = JsonConvert.SerializeObject(data);
data = JsonConvert.DeserializeObject<Data>(dataJson);

Console.WriteLine(data.Parents.Count); // <= it prints 1 …
Run Code Online (Sandbox Code Playgroud)

c# json

2
推荐指数
1
解决办法
1733
查看次数

从 URL 创建 DOM 文档

网址:http : //www.evemarketeer.com/api/orders/10000043/30119/xml

我试过这个

        DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
        DocumentBuilder db = dbf.newDocumentBuilder();
        Document doc = db.parse(url.openStream());
Run Code Online (Sandbox Code Playgroud)

但是不起作用,有人知道用简单的方法创建文档吗?

谢谢

java xml url dom

1
推荐指数
1
解决办法
9048
查看次数

标签 统计

java ×2

c# ×1

classcastexception ×1

dom ×1

hibernate ×1

hibernate-criteria ×1

json ×1

mysql ×1

php ×1

regex ×1

url ×1

xml ×1