UserAccountJpaRepository.java
package io.extact.rms.application.persistence.jpa;
import io.extact.rms.application.domain.UserAccount;
import io.extact.rms.application.persistence.GenericRepository.ApiType;
import io.extact.rms.application.persistence.UserAccountRepository;
import io.extact.rms.platform.extension.EnabledIfRuntimeConfig;
import jakarta.enterprise.context.ApplicationScoped;
import jakarta.persistence.EntityManager;
import jakarta.persistence.NoResultException;
import jakarta.persistence.PersistenceContext;
@ApplicationScoped
@EnabledIfRuntimeConfig(propertyName = ApiType.PROP_NAME, value = ApiType.JPA)
public class UserAccountJpaRepository extends JpaCrudRepository<UserAccount> implements UserAccountRepository {
@PersistenceContext
private EntityManager em;
@Override
public UserAccount findByLoginIdAndPasswod(String loginId, String password) {
var jpql = "select u from UserAccount u where u.loginId = ?1 and u.password = ?2";
try {
return em.createQuery(jpql, UserAccount.class)
.setParameter(1, loginId)
.setParameter(2, password)
.getSingleResult();
} catch (NoResultException e) {
return null;
}
}
@Override
public UserAccount findByLoginId(String loginId) {
var jpql = "select u from UserAccount u where u.loginId = ?1";
try {
return em.createQuery(jpql, UserAccount.class)
.setParameter(1, loginId)
.getSingleResult();
} catch (NoResultException e) {
return null;
}
}
@Override
public EntityManager getEntityManage() {
return this.em;
}
@Override
public Class<UserAccount> getTargetClass() {
return UserAccount.class;
}
}