我有个问题。两者有什么区别?
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",“标题”:“上帝之手”。“马拉多纳的生活”,“价格”:32.1,“作者”:“吉米·伯恩”,“量”:13,“体裁”},{"id":2,"isbn":"978-83-11-10881-3",“标题”:“初学者体重训练指南”,“价格”:33.4,“作者”:“奥利弗·罗伯茨”,“数量”:4,“体育”类型:}
第二个是:
[1,“上帝之手,迭戈·马拉多纳的生活”,“吉米·伯恩”,"83-7298-723-8",“体育”,32.1,13,2,“初学者体重训练指南”,“奥利弗·罗伯茨”,“988-83-11-10881-3”,“体育”,33.4]
所以与[和{的顺序是不同的]是有区别的。
发布于 2017-04-04 15:51:32
这两个查询的不同之处在于:
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文档中看到:
https://stackoverflow.com/questions/43211674
复制相似问题