package com.l7tech.server;

import com.l7tech.objectmodel.PersistentEntity;
import com.l7tech.server.util.ReadOnlyHibernateCallback;
import jakarta.persistence.criteria.CriteriaBuilder;
import jakarta.persistence.criteria.CriteriaQuery;
import jakarta.persistence.criteria.Root;
import java.sql.SQLException;
import java.util.List;
import org.hibernate.HibernateException;
import org.hibernate.Session;

class bt extends ReadOnlyHibernateCallback<List<ET>> {
   final Object val$value;
   final String val$property;
   final HibernateEntityManager this$0;

   bt(HibernateEntityManager var1, Object var2, String var3) {
      this.this$0 = var1;
      this.val$value = var2;
      this.val$property = var3;
   }

   protected List<ET> doInHibernateReadOnly(Session var1) throws HibernateException, SQLException {
      CriteriaBuilder var2 = var1.getCriteriaBuilder();
      CriteriaQuery var3 = var2.createQuery(this.this$0.getImpClass());
      Root var4 = var3.from(this.this$0.getImpClass());

      label26: {
         try {
            if (this.val$value == null) {
               var3.select(var4).where(var2.isNull(var4.get(this.val$property)));
               break label26;
            }
         } catch (HibernateException var8) {
            throw a(var8);
         }

         var3.select(var4).where(var2.equal(HibernateEntityManager.a(var4, this.val$property), this.val$value));
      }

      List var5 = var1.createQuery(var3).getResultList();

      for (PersistentEntity var7 : var5) {
         this.this$0.initializeLazilyLoaded(var7);
      }

      return var5;
   }

   private static HibernateException a(HibernateException var0) {
      return var0;
   }
}
