i'm having trouble jpa object not being returned. i've got customers , addresses, customer can have 0 or more addresses. soft delete items. query works, except when there's no addresses returned don't customer details (returns null).
so set query this:
select c customer c left join fetch c.createuser left join fetch c.lastupdateuser left join fetch c.addressbook c.id = 1 , c.markfordelete = false , (a.id null or a.markfordelete = false) it works fine if there's row in addressbook. if delete addresses i'm getting no result back.
the equivalent of i'm trying accomplish in sql is:
select * customers c left join customer_addresses ca on c.id = ca.customer_id , c.markfordelete = 0 , ca.markfordelete = 0; which works , gives me single result.
ok, using similar data here, found following query should want:
select distinct c customer c left join fetch c.createuser left join fetch c.lastupdateuser left join fetch c.addressbook c.id = 1 , c.markfordelete = false , (size(c.addressbook) = 0 or a.markfordelete = false) note, found distinct important, otherwise got repeated data (customers in case).
also, customers returned have addresses not return addresses customer. attached list have addresses have markfordelete false.
Comments
Post a Comment