我想用hibernate返回一组中其他字段的行 数 ,而我的实体类中没有任何字段代表计数。例如我有一个付款实体类:
class Payment
{
private Long id;
private String totalCode;
private String activityCode;
private Long amount;
// other fields and setter/getters
}
sql查询:
select count(*), sum(p.amount), p.total_code, p.activity_code
from tb_payment p
group by p.total_code,p.activity_code
和我的hibernate标准:
Session session = getCurrentSession();
ProjectionList projectionList = Projections.projectionList();
projectionList.add(Projections.groupProperty("totalCode"))
.add(Projections.groupProperty("activityCode"))
.add(Projections.sum("amount"))
.add(Projections.count("id"));
Criteria criteria = session.createCriteria(Payment.class);
criteria.setProjection(projectionList);
List<Payment> payments = criteria.list();
如我所说,我的问题是我不知道在哪里/如何访问count的值(来自criteria.list())!
我认为这是您代码的正确版本:
Session session = getCurrentSession();
ProjectionList projectionList = Projections.projectionList();
projectionList.add(Projections.groupProperty("totalCode"))
.add(Projections.groupProperty("activityCode"))
.add(Projections.sum("amount"))
.add(Projections.rowCount());
Criteria criteria = session.createCriteria(Payment.class);
criteria.setProjection(projectionList);
List<Object[]> payments = criteria.list();
for (Object[] payment : payments) {
System.out.println("totalCode: " + payment[0]);
System.out.println("activityCode: " + payment[1]);
System.out.println("amountSum: " + payment[2]);
System.out.println("rowCount: " + payment[3]);
}
问题内容: 我有一个二和一的表格。我必须将其发送到服务器,但是将文件与文本连接时遇到一些问题。服务器希望得到以下答案: 这是 html : 这是 控制器 : 这是 指令文件模型 : 这就是 服务 ,其调用服务器: 如果尝试发送,则会收到错误400,响应为:。请求的有效负载为: 问题答案: 不要序列与荷兰国际集团服务器。做这个: 然后使用它:
问题内容: 我有两个实体,消息和用户。用户与消息有一个ManyToMany关系(一个用户可以有多个消息),而消息(现在,为了使其不那么复杂)与用户有一个ManyToMany关系(可以将一条消息发送给多个用户)。 我正在使用@JoinTable加入这两个实体,但是,我想在连接表中添加一个“状态”列,以告知该消息是否是新消息,已读消息等。我当时正在考虑将该列放入Message实体中,但是,我认为这可能
问题内容: 我想在其中自动创建的ManyToMany联接表中存储一些其他信息。我将如何在Django中做到这一点? 就我而言,我有两个表:“雇员”和“项目”。我要存储的是每个项目中每个员工每小时工作所获得的收入,因为这些价值并不相同。那么,我该怎么做呢? 我想到的是,不是使用方法“ ManyToManyField”,而是显式创建了一个第三类/表来存储这些新信息,并使用“ ForeignKey”方法
问题内容: 我有一个相当复杂的数据库结构,正在尝试进行审核。目前,我正在运行Envers,并且它审核对每个对象所做的更改。这真的很好! 我现在想在用户界面上显示一些审核信息。对象/表变得非常复杂,因此我正在寻找一种方法来查看审核中哪些字段已更改。当前存储每个带有修订ID的对象的快照。我可以查看每个对象的修订版本,然后手动查询以查看发生了什么更改,但是我想知道是否有一种方法可以存储哪些字段已更改。这
问题内容: 我在设置字符串类型时遇到麻烦,就像 而且它没有用,我检查了mysql模式,它仍然是varchar(255),我也尝试过, 要么 我正在尝试将类型设为TEXT,任何想法将不胜感激! 问题答案: 您说“我检查了mysql模式,它仍然是varchar(255)”-您是否希望Hibernate自动更改数据库?不会的 即使您已经设置,我也不相信Hibernate会改变现有的列定义。 如果要生成新
休眠与唤醒 [HW,ACPI] acpi_sleep={s3_bios,s3_mode,s3_beep,s4_nohwsig,old_ordering,nonvs,sci_force_enable} ACPI休眠选项。 (1)s3_bios和s3_mode与显卡有关。计算机从S3状态(挂起到内存)恢复时,硬件需要被正确的初始化。这对大多数硬件都不是问题,但因为显 卡是由BIOS初始化的,内核无法获