package io.loli.sc.server.dao.pan; import java.util.List; import io.loli.sc.server.entity.pan.FileEntity; import javax.inject.Named; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; @Named public class FileDao { @PersistenceContext private EntityManager em; public void save(FileEntity file) { em.persist(file); } public List<FileEntity> listByUserIdAndFolderId(int userId, int folderId, int startIndex, int maxCount) { return em.createNamedQuery("FileEntity.listByUserIdAndFolderId", FileEntity.class) .setParameter("userId", userId).setParameter("folderId", folderId).setParameter("delFlag", false) .setFirstResult(startIndex).setMaxResults(maxCount).getResultList(); } public int updateMd5(int id, String md5) { return em.createQuery("update FileEntity set md5=:md5 where id=:id").setParameter("md5", md5) .setParameter("id", id).executeUpdate(); } public FileEntity findById(Integer fileId) { return em.find(FileEntity.class, fileId); } public FileEntity findByMd5(String md5) { return em.createQuery("from FileEntity where md5=:md5 and delFlag=:delFlag", FileEntity.class) .setParameter("md5", md5).setParameter("delFlag", false).getSingleResult(); } public int deleteIn(List<Integer> toDelete) { return em.createQuery("update FileEntity set delFlag=:delFlag where id in:ids").setParameter("delFlag", true) .setParameter("ids", toDelete).executeUpdate(); } }