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 }