我正在为我的JPA粗体工作使用h2
内存数据库表。现在我想查看创建的表的结构。所以我只写了一个像
Query query1 = entityManager.createNativeQuery("show columns from Mobile");
不知道如何打印此结果集。
这样做
System.out.println(query1.getFirstResult());
没有给出预期的输出。
有没有办法看到in-memory
数据库中生成的表结构,或者有没有办法以有意义的方式打印数据(比如执行desc tablename
时得到的输出?)
答案 0 :(得分:1)
您正在寻找的是:
Query query1 = em.createNativeQuery("show columns from Mobile");
List<Object[]> results = query1.getResultList();
for (Object[] obj : results) {
System.out.println("field: " + obj[0]);
System.out.println("\ttype: " + obj[1]);
System.out.println("\tnullable: " + obj[2]);
System.out.println("\tkey: " + obj[3]);
System.out.println("\tdefault: " + obj[4]);
}
我建议你看一下@SqlResultSetMapping来使这个查询类型安全。
答案 1 :(得分:0)
Query query1 = em.createNativeQuery("show columns from Mobile");
List<Object[]> results = query1.getResultList();
for (Object[] obj : results) {
System.out.println("field: " + obj[0]);
System.out.println("\ttype: " + obj[1]);
System.out.println("\tnullable: " + obj[2]);
System.out.println("\tkey: " + obj[3]);
System.out.println("\tdefault: " + obj[4]);
}