我有一个带有单个表的 Hibernate 数据库,如下所示:
PURCHASE_ID | PRODUCT_NAME | PURCHASE_DATE | PURCHASER_NAME | PRODUCT_CATEGORY
------------------------------------------------------------------------------
1 Notebook 09-07-2018 Bob Supplies
2 Notebook 09-06-2018 Bob Supplies
3 Pencil 09-06-2018 Bob Supplies
4 Tape 09-10-2018 Bob Supplies
5 Pencil 09-09-2018 Steve Supplies
6 Pencil 09-06-2018 Steve Supplies
7 Pencil 09-08-2018 Allen Supplies
我想根据其他一些限制只退回最新购买的商品。例如:
List<Purchase> getNewestPurchasesFor(Array<String> productNames, Array<String> purchaserNames) { ... }
可以使用以下方法调用:
List<Purchase> purchases = getNewestPurchasesFor(["Notebook", "Pencil"], ["Bob", "Steve"]);
用英语,“给我最新购买的笔记本或铅笔,鲍勃或史蒂夫。”
并将提供:
PURCHASE_ID | PRODUCT_NAME | PURCHASE_DATE | PURCHASER_NAME
-----------------------------------------------------------
1 Notebook 09-07-2018 Bob
3 Pencil 09-06-2018 Bob
5 Pencil 09-09-2018 Steve
所以,它就像基于一些一个“独特”的多列查找,或“限价”后排序合并列唯一键,但所有的例子,我发现显示使用SELECT DISTINCT(PRODUCT_NAME, PURCHASER_NAME)以获得只有那些列,而我需要使用格式:
from Purchases as entity where ...
以便模型类型以完整的关系返回。
对于重复购买,这会导致性能下降。
我应该使用任何特殊关键字来完成此操作吗?查询语言和 SQL-fu 不是我的强项。
慕田峪7331174
慕运维8079593
相关分类