我有这张表,我想存储一条记录链。
rb.setRequestData(json);
Request response = rb.sendRequest(json.toString(), new RequestCallback() {
public void onError(Request request, Throwable exception) {}
public void onResponseReceived(Request request, Response response) {
Window.open(rb.getUrl(), postTarget, postWinFeatures);
}
});
我想为MariDB实现SQL查询,该查询按id打印所有记录以及带有reference_id的所有记录。像这样:
CREATE TABLE table_name (
id INT,
unique_id varchar,
reference_id varchar,
);
当我选择记录66进行所有向上和向下交易时,我想要,因为彼此都使用指向它们的id。如何使用递归CTE来实现?有更好的方法吗?
具有唯一ID 66的记录的预期结果:
| id | unique_id | reference_id | | |
|----|-----------|--------------|---|---|
| 43 | 55544 | | | |
| 45 | 45454 | 43 | | |
| 66 | 55655 | 45 | | |
| 78 | 88877 | 66 | | |
| 99 | 454 | 33 | | |
我尝试过,但是上面的行没有打印。
| id | unique_id | reference_id | | |
|----|-----------|--------------|---|---|
| 43 | 55544 | | | |
| 45 | 45454 | 43 | | |
| 66 | 55655 | 45 | | |
| 78 | 88877 | 66 | | |
如果可能,我想将此查询编辑为JPA吗?
答案 0 :(得分:0)
使用JPQL是不可能的,因为这将是递归查询。
但是您可以使用SQL并将其作为本机查询执行。
entityManager.createNativeQuery("<your sql>");
在MariaDB手册中阅读有关递归查询的更多信息 https://mariadb.com/kb/en/library/recursive-common-table-expressions-overview/