【发布时间】:2011-05-08 01:50:12
【问题描述】:
首先让我说我不是数据库专家。这东西简直把我弄糊涂了,但不幸的是,我在工作中被绳之以法,所以我有点卡住了:-)
我试图通过在 JPQL 工作来获得复杂的订单,但我一点运气都没有。
我当前的查询如下所示:
select distinct msg from CSMessage msg, Error err where msg = err.msg order by err.task.src
我想要完成的是获取所有带有相关错误的消息,然后使用源文档 (err.task.src) 对整个内容进行排序,以获取具有相同源的所有错误消息在一起。
不用说这根本行不通。我得到一个例外,说; "ORDER BY 项目应该在 SELECT DISTINCT 列表中"
我查看了文档和其他来源,但其中似乎没有任何可以帮助我的东西。
谁能指出我正确的方向?
谢谢
编辑 1:
实体如下所示:
CSMessage
公共类 CSMessage 扩展 BaseModel 实现 Serializable
{
私有静态最终长序列版本UID = 1L;
.
.
.
为简洁起见未显示其他字段
.
.
.
@ManyToOne(fetch = FetchType.LAZY, cascade = { CascadeType.PERSIST, CascadeType.MERGE })
@JoinColumn(name = "TASK_ID")
私人任务任务;
}
错误:
任务
公开课任务
{
私有静态最终长序列版本UID = 1L;
@Column(name = "CORRELATION_UUID", 长度 = 36)
私有字符串相关 ID;
@Column(name = "CURRENT_NODE", 长度 = 255)
私有字符串 currentNodeName = "空";
@Column(name = "PROCESS_NAME", 长度 = 255)
私有字符串 processName = "空";
@Column(name = "SITE_ID", 长度 = 10)
私人字符串 siteId = "1";
@OneToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "SRC_ID")
私有的 CommonSource src;
}
【问题讨论】:
-
请显示您的实体(它们之间的关联)。