任务完成后从hibernate获取反馈

时间:2013-04-07 15:12:00

标签: java hibernate split

我有一点问题,我不知道怎么做。

我使用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的标识符。

1 个答案:

答案 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上的文档。