相关疑难解决方法(0)

javax.ejb.TransactionRolledbackLocalException (Glassfish 3 + JPA + EclipseLink)

我在使用 Glassfish 3.1.2 + JPA + EclipseLink + MySQL 开发的应用程序上遇到了问题,在我部署应用程序后(DB 上没有表)它运行得很好,显然执行了唯一的查询(表中的实体计数)我输入的。但是如果我重新加载页面,再次调用 servlet 会导致抛出异常:TransactionRolledbackLocalException

显然与用于计算实体的方法相同。

然后如果我再次重新加载,它运行得很好,然后再次异常,很好,异常等等......

这是我的 servlet:

@WebServlet(name="Controller", urlPatterns={"/Controller"})
public class Controller extends HttpServlet {
    private static final long serialVersionUID = 1L;

    @EJB WineDao _wines;

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        _wines.countWines();

        RequestDispatcher view = request.getRequestDispatcher("ShowAll.jsp");
        view.forward(request, response);
    }
} 
Run Code Online (Sandbox Code Playgroud)

这是 WineDao:

@Stateless
public class WineDao {
    @PersistenceContext private EntityManager em;

    public Long countWines() {
        CriteriaBuilder qb = em.getCriteriaBuilder();
        CriteriaQuery<Long> cq = qb.createQuery(Long.class);
        cq.select(qb.count(cq.from(Wine.class)));
        return em.createQuery(cq).getSingleResult(); …
Run Code Online (Sandbox Code Playgroud)

java ejb glassfish eclipselink jakarta-ee

1
推荐指数
1
解决办法
3386
查看次数

标签 统计

eclipselink ×1

ejb ×1

glassfish ×1

jakarta-ee ×1

java ×1