net.yadaframework.security.persistence.repository.YadaRegistrationRequestDao Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of yadawebsecurity Show documentation
Show all versions of yadawebsecurity Show documentation
Yada Framework authentication and authorization component
package net.yadaframework.security.persistence.repository;
import java.util.Date;
import java.util.List;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;
import jakarta.persistence.EntityManager;
import jakarta.persistence.PersistenceContext;
import net.yadaframework.core.YadaRegistrationType;
import net.yadaframework.security.persistence.entity.YadaRegistrationRequest;
@Repository
@Transactional(readOnly = true)
public class YadaRegistrationRequestDao {
@PersistenceContext EntityManager em;
public List findByIdAndTokenOrderByTimestampDesc(long id, long token, Class type) {
String sql = "from " + type.getSimpleName() + " where id=:id and token=:token order by timestamp desc";
return em.createQuery(sql, type)
.setParameter("id", id)
.setParameter("token", token)
.getResultList();
}
public List findByEmailAndRegistrationType(String email, YadaRegistrationType registrationType, Class type) {
String sql = "from " + type.getSimpleName() + " where email=:email and registrationType=:registrationType";
return em.createQuery(sql, type)
.setParameter("email", email)
.setParameter("registrationType", registrationType)
.getResultList();
}
/**
* Trova tutti gli elementi con timestamp antecedente la data indicata
* @param upperLimit
* @return
*/
public List findByTimestampBefore(Date upperLimit) {
String sql = "from YadaRegistrationRequest where timestamp < :upperLimit";
return em.createQuery(sql, YadaRegistrationRequest.class)
.setParameter("upperLimit", upperLimit)
.getResultList();
}
@Transactional(readOnly = false)
public void delete(YadaRegistrationRequest registrationRequest) {
registrationRequest = em.merge(registrationRequest);
em.remove(registrationRequest);
}
@Transactional(readOnly = false)
public YadaRegistrationRequest save(YadaRegistrationRequest entity) {
if (entity==null) {
return null;
}
if (entity.getId()==null) {
em.persist(entity);
return entity;
}
return em.merge(entity);
}
}