Получить значение из объекта Java Java на Hibernate - PullRequest
0 голосов
/ 06 апреля 2019

У меня есть запрос:

public List<InvoiceItems> findAllBalance(String external_key) throws HibernateException {
          return (List<InvoiceItems>) session.createQuery("select SUM(i.amount) as amount, t.record_id from Accounts a, InvoiceItems i, Tenant t WHERE a.record_id = i.account_record_id AND t.record_id=a.tenant_record_id  AND a.external_key='"+external_key+"' group by i.tenant_record_id, t.record_id").list();
    }

InvoiceItems.java:

package id.co.keriss.consolidate.ee;

import java.util.Date;

import org.jpos.ee.Accounts;

    public class InvoiceItems {

        private long record_id;
        private String id;
        private String type;
        private String invoice_id;
        private Accounts account_record_id;
        private Tenant tenant_record_id;
        private String description;
        private long amount;
        private Date created_date;
        private String usage_name;
        private String plan_name;
        private String account_id;



        public String getAccount_id() {
            return account_id;
        }
        public void setAccount_id(String account_id) {
            this.account_id = account_id;
        }
        public long getRecord_id() {
            return record_id;
        }
        public void setRecord_id(long record_id) {
            this.record_id = record_id;
        }
        public String getId() {
            return id;
        }
        public void setId(String id) {
            this.id = id;
        }
        public String getType() {
            return type;
        }
        public void setType(String type) {
            this.type = type;
        }
        public String getInvoice_id() {
            return invoice_id;
        }
        public void setInvoice_id(String invoice_id) {
            this.invoice_id = invoice_id;
        }
        public Accounts getAccount_record_id() {
            return account_record_id;
        }
        public void setAccount_record_id(Accounts account_record_id) {
            this.account_record_id = account_record_id;
        }
        public Tenant getTenant_record_id() {
            return tenant_record_id;
        }
        public void setTenant_record_id(Tenant tenant_record_id) {
            this.tenant_record_id = tenant_record_id;
        }
        public String getDescription() {
            return description;
        }
        public void setDescription(String description) {
            this.description = description;
        }
        public long getAmount() {
            return amount;
        }
        public void setAmount(long amount) {
            this.amount = amount;
        }
        public Date getCreated_date() {
            return created_date;
        }
        public void setCreated_date(Date created_date) {
            this.created_date = created_date;
        }
        public String getUsage_name() {
            return usage_name;
        }
        public void setUsage_name(String usage_name) {
            this.usage_name = usage_name;
        }
        public String getPlan_name() {
            return plan_name;
        }
        public void setPlan_name(String plan_name) {
            this.plan_name = plan_name;
        }


    }

затем установить в переменную:

List<InvoiceItems> invoiceItems = invoiceItemsDao.findAllBalance(jsonRecv.getString("externalkey"));

Я хочу получить значение из этого запроса, что я пытаюсь:

LogSystem.info(request, "List : " + invoiceItems.get(0).getId();

Я получил ошибку "невозможно привести к InvoiceItems"

затем я пытаюсь изменить значение с List<InvoiceItems> на List

получить с этим:

LogSystem.info(request, "List : " + invoiceItems.get(0);

но вывод как это не значение:

[Ljava.lang.Object;@41ea9df8

любой совет? Конечный результат, что я хочу, это рассчитать сумму арендатора

1 Ответ

1 голос
/ 06 апреля 2019

session.createQuery принимает HQL (язык запросов Hibernate), однако я вижу, что вы используете собственный SQL. Попробуйте использовать метод createSQLQuery.

public List<InvoiceItems> findAllBalance(String external_key) throws HibernateException {
     Query query = session.createSQLQuery("select SUM(i.amount) as amount, t.record_id from Accounts a, InvoiceItems i, Tenant t WHERE a.record_id = i.account_record_id AND t.record_id=a.tenant_record_id  AND a.external_key='"+external_key+"' group by i.tenant_record_id, t.record_id");
    query.setResultTransformer(Transformers.aliasToBean(InvoiceItems.class));
     List<InvoiceItems> list = query.list();
        return list;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...