【发布时间】:2021-12-25 19:17:47
【问题描述】:
我正在尝试使用外部应用从两个具有本机 SQL 的表/实体中获取结果。在 SQL Server 中,我得到了正确的答案,但是,使用相同的查询,我在 JPA 中得到了不同的结果。 在 SQL Server 中,我只从第二个表中获取最后一个 ID(应该如此),而在 JPA 中,我从第二个表中获取所有 ID。如何在 JPA 中仅获取第二个表中的最后一个 ID?
public List<Client> getClients()
{
List results = entityManager.createNativeQuery("SELECT top 17 c.ID, c.CustomerNumber, c.Name, c.Surname, c.Area, c.City, c.Address, c.PhoneNumber, c.CustomerTypeID, c.Enabled, c.DateCreated, p.Credit, p.Debit\n" +
"FROM tblCustomer c OUTER APPLY\n"+
" (SELECT TOP 1 p.*\n" +
" FROM tblPayments p\n" +
" WHERE c.CustomerNumber = p.CustomerNumber\n" +
" ORDER BY p.id DESC\n" +
" ) p;",
Client.class)
.getResultList();
return results;
}
{
"id": 1023,
"customerNumber": "000001",
"name": "Pajazit",
"surname": "Neziri",
"area": "1",
"city": "Çegran",
"address": "Bake",
"phoneNumber": "",
"customerType": 2,
"enabled": false,
"dateCreated": "2016-10-25",
"payments": [
{
"id": 16238,
"customerNumber": "000001",
"invoiceNumber": "9000001112018",
"monthOfPayment": "11-2018",
"dateOfPayment": "2018-11-18",
"credit": 1200.0,
"debit": 0.0,
"paymentPeriod": "M",
"operator": 0,
"printed": "T",
"paied": "T",
"isInvoice": "T"
},
{
"id": 20459,
"customerNumber": "000001",
"invoiceNumber": "900000112019",
"monthOfPayment": "1-2019",
"dateOfPayment": "2019-01-09",
"credit": 0.0,
"debit": 600.0,
"paymentPeriod": "M",
"operator": 0,
"printed": "T",
"paied": "T",
"isInvoice": "T"
},
{
"id": 20538,
"customerNumber": "000001",
"invoiceNumber": "2000001112018",
"monthOfPayment": "11-2018",
"dateOfPayment": "2019-01-09",
"credit": 0.0,
"debit": 600.0,
"paymentPeriod": "M",
"operator": 1,
"printed": "T",
"paied": "T",
"isInvoice": "T"
},
{
"id": 20557,
"customerNumber": "000001",
"invoiceNumber": "2000001122018",
"monthOfPayment": "12-2018",
"dateOfPayment": "2019-01-09",
"credit": 0.0,
"debit": 600.0,
"paymentPeriod": "M",
"operator": 1,
"printed": "T",
"paied": "T",
"isInvoice": "T"
},
{
"id": 20576,
"customerNumber": "000001",
"invoiceNumber": "2000001012019",
"monthOfPayment": "01-2019",
"dateOfPayment": "2019-01-09",
"credit": 0.0,
"debit": 600.0,
"paymentPeriod": "M",
"operator": 1,
"printed": "T",
"paied": "T",
"isInvoice": "T"
},....
【问题讨论】:
标签: sql spring-boot hibernate