Hỏi về Ids phải gán thủ công trong eclipse và sql-server

em có bị 1 lỗi khi thực hiện update dữ liệu trong sql server, e thấy lỗi bảo là ids phải đc gán thủ công nhưng e fix mãi không được mong mn có thể chỉ giúp em
Đây là class của em :


Đây là lỗi :

Đây là sql của em :

Hi there,

Trong stacktrace của cậu có chỉ lỗi ở AbstractEntityDao dòng 40, và EditProfileServlet dòng 55. Cậu có thể share cho bọn tớ 2 class đó được không?

Ngoài ra, đừng chụp ảnh screenshot lỗi và code nha cậu. Cậu copy nội dung của các class liên quan + stacktrace của lỗi và post lên đây. Nhớ sử dụng Markdown để format code nhé! :smiley:

Edit: ủa, username là ID à cậu? @@

4 Likes
  • class AbstractEntityDao
package edu.poly.dao;

import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.EntityTransaction;
import javax.persistence.Query;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Root;

public abstract class AbstractEntityDao<T> {
	private Class<T> entityClass;

	public AbstractEntityDao(Class<T> cls) {
		this.entityClass = cls;
	}

	public void insert(T entity) {
		EntityManager em = JpaUtils.getEntityManager();
		EntityTransaction trans = em.getTransaction();
		try {
			trans.begin();
			em.persist(entity);
			trans.commit();
		} catch (Exception e) {
			e.printStackTrace();
			trans.rollback();
			throw e;
		} finally {
			em.close();
		}
	}

	public void update(T entity) {
		EntityManager em = JpaUtils.getEntityManager();
		EntityTransaction trans = em.getTransaction();

		try {
			trans.begin();
			em.merge(entity);
			trans.commit();
		} catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
			trans.rollback();
			throw e;
		} finally {
			em.close();
		}
	}

	public void delete(Object id) {
		EntityManager em = JpaUtils.getEntityManager();
		EntityTransaction trans = em.getTransaction();

		try {
			trans.begin();

			T entity = em.find(entityClass, id);
			em.remove(entity);

			trans.commit();
		} catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
			trans.rollback();
			throw e;
		} finally {
			em.close();
		}
	}

	public T findbyId(Object Id) {
		EntityManager em = JpaUtils.getEntityManager();
		T entity = em.find(entityClass, Id);
		return entity;
	}

	public List<T> findAll() {
		EntityManager em = JpaUtils.getEntityManager();
		try {
			CriteriaQuery cq = em.getCriteriaBuilder().createQuery();
			cq.select(cq.from(entityClass));
			return em.createQuery(cq).getResultList();
		} finally {
			// TODO Auto-generated catch block
			em.close();
		}
	}

	public Long count() {
		EntityManager em = JpaUtils.getEntityManager();
		try {
			CriteriaQuery cq = em.getCriteriaBuilder().createQuery();

			Root<T> rt = cq.from(entityClass);
			cq.select(em.getCriteriaBuilder().count(rt));
			Query q = em.createQuery(cq);
			return (Long) q.getSingleResult();
		} finally {
			em.close();
		}

	}

	public List<T> findAll(boolean all, int firstResult, int maxResult) {
		EntityManager em = JpaUtils.getEntityManager();
		try {
			CriteriaQuery cq = em.getCriteriaBuilder().createQuery();
			cq.select(cq.from(entityClass));
			Query q = em.createQuery(cq);
			if (!all) {
				q.setFirstResult(firstResult);
				q.setMaxResults(maxResult);
			}
			

			return q.getResultList();
		} finally {
			// TODO Auto-generated catch block
			em.close();
		}
	}

}

  • class EditProfileServlet
package edu.poly.site.servlet;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.beanutils.BeanUtils;

import edu.poly.common.PageInfo;
import edu.poly.common.PageType;
import edu.poly.common.SessionUtils;
import edu.poly.dao.UserDao;
import edu.poly.model.User;

/**
 * Servlet implementation class EditProfileServlet
 */
@WebServlet("/EditProfile")
public class EditProfileServlet extends HttpServlet {
	protected void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		String username = SessionUtils.getLoginedUsername(request);
		if (username == null) {
			request.getRequestDispatcher("/Login").forward(request, response);
			return;
		}
		try {
			UserDao dao = new UserDao();
			User user = dao.findbyId(username);
			request.setAttribute("user", user);

		} catch (Exception e) {

			e.printStackTrace();
			request.setAttribute("erro", "" + e.getMessage());
		}
		PageInfo.prepareAndForwardSite(request, response, PageType.SITE_EDIT_PROFILE_PAGE);

	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		try {
			User user = new User();
			BeanUtils.populate(user, request.getParameterMap());
			String username = SessionUtils.getLoginedUsername(request);
			System.out.println(username);
			UserDao dao = new UserDao();
			User olduser = dao.findbyId(username);
			user.setAdmin(olduser.getAdmin());
			user.setPassword(olduser.getPassword());
			dao.update(user);
			request.setAttribute("message", "User Updated!!!");
			request.setAttribute("user", user);
			
		} catch (Exception e) {
			e.printStackTrace();
			request.setAttribute("erro", "" + e.getMessage());
		}
		PageInfo.prepareAndForwardSite(request, response, PageType.SITE_EDIT_PROFILE_PAGE);
	}

}
  • class UserDao của mình
public class UserDao extends AbstractEntityDao<User> {

	public UserDao() {
		super(User.class);

	}
  • username là id đó bạn
    thanks
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?