Quantcast
Channel: Tópicos
Viewing all articles
Browse latest Browse all 11336

Problema com mapeamento com Mybatis

$
0
0
Boa noite pessoal Estou a fazer a seguinte query a BD que tenho criada em PostGres : UPDATE "NTFGWDB"."Voucher" SET state_id = 3 WHERE serial_number = (SELECT serial_number FROM "NTFGWDB"."Voucher" WHERE group_id = 1 AND state_id = 1 ORDER BY v.id ASC limit 1) RETURNING serial_number; Basicamente preciso de um voucher que esteja ativo e pertença a um determinado grupo, como preciso de fazer a reserva desse voucher coloco o estado em reservado e retorno o voucher mais antigo com estas condições. Estou a utilizar o mybatis para fazer o mapeamento mas estou a ter problemas com esta query. VoucherMapper @Update("UPDATE \"NTFGWDB\".\"Voucher\"\n" + " SET state_id = 3\n" + " WHERE serial_number = (SELECT serial_number\n" + " FROM \"NTFGWDB\".\"Voucher\"\n" + " WHERE group_id = 1 AND state_id = 1\n" + " ORDER BY id ASC\n" + " limit 1)\n" + " RETURNING *") @Results({ @Result(property = "id", column = "id"), @Result(property = "serialNumber", column = "serial_number"), @Result(property = "activationCode", column = "activation_code"), @Result(property = "groupId", column = "group_id"), @Result(property = "expiricyDate", column = "expiricy_date"), @Result(property = "stateChangeDate", column = "state_change_date"), @Result(property = "loadedDate", column = "loaded_date"), @Result(property = "stateId", column = "state_id") }) public Voucher getActiveVoucher(); VoucherService @Override public Voucher getActiveVoucher() { SqlSession session = sqlFactory.openSession(); try { return session.getMapper(VoucherMapper.class).getActiveVoucher(); } finally { session.close(); } } Construtor public Voucher(long id, long serialNumber, long activationCode, int groupId, Date expiricyDate, int stateId, Date stateChangeDate, Date loadedDate) { this.id = id; this.serialNumber = serialNumber; this.activationCode = activationCode; this.groupId = groupId; this.expiricyDate = (Date) expiricyDate.clone(); this.stateId = stateId; this.stateChangeDate = (Date) stateChangeDate.clone(); this.loadedDate = (Date) loadedDate.clone(); } Main @Test public void connectGetActiveVoucher() { Voucher voucher = new VoucherService().getActiveVoucher(); System.out.println(voucher); } Ao compilar acontece o seguinte erro : ache.ibatis.binding.BindingException: M Alguem consegue perceber o que se passa? Obrigado, Ricardo Pereira

Viewing all articles
Browse latest Browse all 11336

Trending Articles