如何在 JPA 中接受 Map<String,Object> 类型的元组



目前休眠元组接受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的原因。

最新更新