目前休眠元组接受Map<String,String>
返回类型,但我需要返回类型Map<String,Object>
如何实现这一点。
例:
class User {
long id;
String imageUrl;
Address address;
String username;
String password;
String email;
}
class Address {
long id;
String name;
String Street code;
}
我的条件查询:
CriteriaBuilder builder = entityManager.getCriteriaBuilder();
CriteriaQuery<Tuple> cq = builder.createTupleQuery();
Root<User> root = cq.from(User.class);
cq.multiselect(
root.get("imageUrl"),
root.get("address"));
cq.where(builder.equal(root.get("id"),3));
Tuple tuple = entityManager.createQuery(cq).getSingleResult();
tuple.get(0);
// Error occurs for below code. (Stack over flow exception)
tuple.get(1);
获取imageUrl
时没有错误,但是当它尝试获取address
[地址类型不是字符串]属性休眠触发器堆栈流异常时,因为它试图将地址转换为字符串。
有没有其他方法可以实现这一目标.. ?
问题在于 toString(( 的地址为 String
问题在于toString()
哪个地址为字符串。
地址类中的toString()
方法尝试递归打印用户对象。
这就是stackoverflow
的原因。