1 package io.extact.rms.application.persistence.jpa; 2 3 import io.extact.rms.application.domain.UserAccount; 4 import io.extact.rms.application.persistence.GenericRepository.ApiType; 5 import io.extact.rms.application.persistence.UserAccountRepository; 6 import io.extact.rms.platform.extension.EnabledIfRuntimeConfig; 7 import jakarta.enterprise.context.ApplicationScoped; 8 import jakarta.persistence.EntityManager; 9 import jakarta.persistence.NoResultException; 10 import jakarta.persistence.PersistenceContext; 11 12 @ApplicationScoped 13 @EnabledIfRuntimeConfig(propertyName = ApiType.PROP_NAME, value = ApiType.JPA) 14 public class UserAccountJpaRepository extends JpaCrudRepository<UserAccount> implements UserAccountRepository { 15 16 @PersistenceContext 17 private EntityManager em; 18 19 @Override 20 public UserAccount findByLoginIdAndPasswod(String loginId, String password) { 21 var jpql = "select u from UserAccount u where u.loginId = ?1 and u.password = ?2"; 22 try { 23 return em.createQuery(jpql, UserAccount.class) 24 .setParameter(1, loginId) 25 .setParameter(2, password) 26 .getSingleResult(); 27 } catch (NoResultException e) { 28 return null; 29 } 30 } 31 32 @Override 33 public UserAccount findByLoginId(String loginId) { 34 var jpql = "select u from UserAccount u where u.loginId = ?1"; 35 try { 36 return em.createQuery(jpql, UserAccount.class) 37 .setParameter(1, loginId) 38 .getSingleResult(); 39 } catch (NoResultException e) { 40 return null; 41 } 42 } 43 44 @Override 45 public EntityManager getEntityManage() { 46 return this.em; 47 } 48 49 @Override 50 public Class<UserAccount> getTargetClass() { 51 return UserAccount.class; 52 } 53 }