我有一个使用此方法的 HIBERNATE DAOImpl:
public List<Estados> listaEstados() throws DAOException {
List<Estados> lista = getHibernateTemplate().find("SELECT e.id as id,e.nombre as nombre FROM Estados e");
return lista;
}
运行时,不是绘制 id 和状态名称,而是显示以下内容:
[[Ljava.lang.Object;@acacc3, [Ljava.lang.Object;@825032]
应该画这样的东西:
[[1,"Morelos"],[2,"Mexico"]
为什么?我做错了什么?
问题是当我检查 2 个或更多字段时,如果只获取状态名称则运行良好。
我用 Junit 做了测试。在显示行之前:
[[Ljava.lang.Object;@acacc3, [Ljava.lang.Object;@825032]
如果它向我显示结果
8585 [main] DEBUG org.hibernate.loader.Loader - result row:
8585 [main] DEBUG org.hibernate.type.IntegerType - returning '1' as column: col_0_0_
8585 [main] DEBUG org.hibernate.type.StringType - returning 'Morelos' as column: col_1_0_
8585 [main] DEBUG org.hibernate.loader.Loader - result set row: 1
8585 [main] DEBUG org.hibernate.loader.Loader - result row:
8585 [main] DEBUG org.hibernate.type.IntegerType - returning '2' as column: col_0_0_
8585 [main] DEBUG org.hibernate.type.StringType - returning 'Mexico' as column: col_1_0_
8585 [main] DEBUG org.hibernate.loader.Loader - done processing result set (2 rows)
有人知道我做错了什么,因为正确的结果丢失了?你输在哪里?或者如果我必须将其转换为字符串对象或列表。和以前一样?,代码是什么?
最佳答案
覆盖toString()
方法在你的 Estados
返回漂亮String
您想看到的,如果您尝试直接或间接打印数组,您需要使用 Arrays.toString()
还有
关于java - 为什么打印 [[Ljava.lang.Object;@12f29d9, [Ljava.lang.Object;@1648f32],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22673633/