gpt4 book ai didi

hibernate - 查询唯一/不同的ID和状态日期

转载 作者:行者123 更新时间:2023-12-02 16:00:15 24 4
gpt4 key购买 nike

在过去的几天里,我一直在尝试解决此问题,但我自己找不到答案,因此我希望有人可以将我指向答案,也可以自己帮助我。

问题是,让我说我有2个不同的域-一个称为Vehicle,另一个称为vehicle_history。现在,每次有人更换特定车辆时,都会在历史记录表中创建一个新对象/新条目。我想做的是查询一个特定日期的所有车辆状态,而无需修改查询返回的数据(排序列表等)。

因为我知道我不是最擅长解释我的问题,所以这里有个例子:

id     vehicle_id  date_created  state  
1 1 12.08.2015 291
2 2 12.08.2015 212
3 1 14.08.2015 302
4 1 18.08.2015 201

第四列中有什么数据都没有关系,我们只知道我们不能基于此查询。

因此,当前,如果我进行的查询没有日期,则应仅返回两个条目:2和4。如果我进行的查询是使用日期16.08.2015,则应返回:2和3。

我发现工作的一种方法是查询数据库并进行预测
                projections {
max "dateCreated"
groupProperty "vehicle.id"
groupProperty "vehicle"
}

[而且我不能只使用投影来获取数据,因为我需要通过查询获取的值之一是整数]

获取最大的“dateCreated”和“vehicle_id”以使用(因为我需要vehicle_history_id而不是vehicle_id)
def query = VehicleHistory.where {
vehicle.id = vId
dateCreated = dtCreated
}

但是事实证明这太慢了,因为表中可能有超过2万个条目。

我没有添加其余的过滤器,因为它们似乎与当前问题无关。

最佳答案

VehicleHistory.withCriteria{   
projections {
max 'dateCreated'
max 'vehicle.id'
groupProperty 'vehicle.id'
property 'id'
property 'state'
property 'amount'
}
}

应该做

关于hibernate - 查询唯一/不同的ID和状态日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32045698/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com