我有一点问题,我不知道怎么做。
我使用Hibernate(MySQL)存储(让我们这样称呼它)“产品”,我有一个名为“Identifier”的对象。
Identifier
----------
Listname | is the name of a txt,csv.... with 1 up to 1000 products
ProductKey | is just a little piece of information about the product used
| to get more information due to an external API
Processed | simple 1 or 0 to say the Product information is completed
所以表格看起来像这样。
"test.txt" | productkey1234 | 1
"test.txt" | productkey2345 | 1
"test.txt" | productkey3456 | 1
"test.txt" | productkey4567 | 0
"file.txt" | productkey1 | 1
"file.txt" | productkey2 | 1
"file.txt" | productkey3 | 1
我有一个后台服务,必须检查列表中的每个产品是否都已处理,如果是,它应该获取所有产品并写一个结果文件,其中包含有关它们的所有完整信息。 (那不是问题)。
但是,如果我有6000个包含10个不同列表的条目,我如何要求Hibernate检查所谓的List是否准备就绪? (处理列表中的每个产品)
在我使用Hibernate之前,我拆分了查询并获得了所有唯一列表,并为每个列表运行了一个循环
"SELECT sum(processed) as done,count(processed) as all from Identifier where list = 'listname'"
如果完成等于我知道列表已准备就绪,我可以获取所有产品并删除包含listname
的标识符。
答案 0 :(得分:0)
如果问题是:如何将此SQL查询转换为HQL?,那么答案非常简单:
SELECT sum(i.processed) as done, count(i.processed) as all
from Identifier i
where i.list = 'listname'
请参阅aggregate functions in HQL上的文档。