我有一个问题。有什么区别
books = session.createQuery("from Book b").list();
和
books = session.createQuery("select b.id, b.title, b.author, b.isbn, b.genre, b.price, b.amount from Book b").list();
因为我收到了不同的JSON格式。第一个返回:
[{" ID":1," ISBN":" 83-7298-723-8""标题":& #34;上帝之手。生命 迭戈马拉多纳","价格":32.1,"作者":"吉米 烧""量":13,"类型":"运动"},{" ID":2&#34 ; ISBN":" 978-83-11-10881-3""标题":"初学者 体重训练指南","价格":33.4,"作者":"奥利弗 罗伯茨""量&#34:4,"类型":"运动"}]
和第二个:
[[1,"上帝之手。迭戈马拉多纳的生活","吉米 Burn"," 83-7298-723-8"," Sport",32.1,13],[2,"体重初学者指南 培训"," Oliver Roberts"," 978-83-11-10881-3"," Sport",33.4,4]]
所以与[和{存在差异,而且顺序不同。
答案 0 :(得分:0)
两个查询之间的区别在于:
List<Book>
时返回from Book b
,因此它将返回整个Book
对象。List<Object[]>
时返回select b.id, b.title, b.author, b.isbn, b.genre, b.price, b.amount from Book b
,但对于每个结果,查询将返回一个对象数组,其中每个属性都返回为Object
,无论是什么它的类型。在这种情况下,即使您选择了实体中的所有列,也会得到Object[]
。这解释了你得到的两个JSON输出之间的区别。
<强>参考:强>
您可以从 Hibernte documentation 中看到: