Ich benutze Grails 3.2.0.M2 und PostgreSQL 9.4.1.So erstellen Sie eine Unterabfrage in Grails
Ich erstelle Web-API, die Umsatzdaten als JSON zurückgibt. Url ist wie folgt http // localhost/sales? UserId = 001 & limit = 10
Es gibt drei Domain-Klassen, die Verkaufs-, Verkaufsdetails und Element-Domain-Klasse sind wie folgt.
Ich möchte diese Domäne beitreten und Daten nach Bedingungen abrufen und Anzahl der Verkaufszeilen begrenzen. Zum Beispiel, wenn ich http // localhost/sales? Limit = 2 für den Fall, dass Domain-Daten wie folgt sind.
Sales
id userId
sales001 user001
sales002 user002
SalesDetails
id userID salesId itemId count status
salesDetails001 user001 sales001 item001 1 1
salesDetails002 user001 sales001 item002 2 1
salesDetails003 user002 sales002 item001 1 1
salesDetails004 user002 sales002 item002 3 1
Item
id itemName price
item001 book 100
item002 cd 200
Ich möchte ein JSON erhalten, das zwei Verkaufsdomänen enthält.
{
"sales" : [
{
"id": "sales001",
"userId": "user001",
"salesDetails": [
{
"salesId": "sales001",
"itemId": "item001",
"itemName": "book",
"count": 1
},
{
"salesId": "sales001",
"itemId": "item002",
"itemName": "cd",
"count": 2
}
]
},
{
"id": "sales002",
"userId": "user002",
"salesDetails": [
{
"salesId": "sales002",
"itemId": "item001",
"itemName": "book",
"count": 1
},
{
"salesId": "sales002",
"itemId": "item002",
"itemName": "cd",
"count": 3
}
]
}
]
}
Wenn in SQL, ich denke, dass eine Abfrage wie folgt ist.
select * from sales s1
where exists (
select s2.id from sales s2
inner join sales_details sd on s2.id = sd.sales_id
inner join item i on sd.item_id = i.id where s1.id = s2.id
where i.name = 'book' and s1.id = s2.id) // search conditions on Sales, SalesDetails, or Item
limit 2; // limit Sales
Ich las http://gorm.grails.org/6.0.x/hibernate/manual/index.html#criteria, aber ich weiß nicht, wie drei Tisch und Grenze zu verbinden. Wie erstellt man eine Abfrage in Grails?
Sie können hql und Schneider es in der Nähe der SQL-Abfrage verwenden: http:/
Sie auch mit begrenzen könnten versuchen, /stackoverflow.com/questions/39453576/grails-2-5-1-hibernate-3-criteria-multiple-joins-to-same-table/39468326#39468326 – Vahid