package io.loli.sc.server.dao; import io.loli.sc.server.entity.User; import java.util.List; import javax.inject.Named; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; @Named public class UserDao { @PersistenceContext private EntityManager em; /** * 把User实体持久化 * * @param user */ public void save(User user) { em.persist(user); } /** * 根据指定的email查询出User, 如果无此User则返回null, 如果有多个, 则返回第一个 * * @param email * @return 查询出的User实体 */ public User findByEmail(String email) { List<User> resultList = em.createNamedQuery("User.findByEmail", User.class) .setParameter("email", email).getResultList(); User result = null; if (resultList.size() >= 1) { result = resultList.get(0); } return result; } /** * 更新User实体 * * @param user 需要更新的实体 * @return 更新后的实体 */ public User update(User user) { return em.merge(user); } /** * 根据指定的id(User的主键)查询出User * * @param id * @return 如果查询不出, 返回null */ public User findById(int id) { User result = em.find(User.class, id); return result; } public void merge(User user) { em.merge(user); } public void refresh(User user) { em.refresh(user); } }