【问题标题】:Remove all contents of a table from time to time using Java JPA (EclipseLink) MySQL使用 Java JPA (EclipseLink) MySQL 不时删除表的所有内容
【发布时间】:2013-11-21 13:55:15
【问题描述】:

我真的需要你的帮助

我需要不时删除一个表的所有内容,我使用的是 Java + JPA (EclipseLink) + MySQL

我正在使用下面的代码,但没有成功,我对 JPA 一无所知

public void deleteTableFupfile(){
        EntityManager em = getEntityManager();
        CriteriaBuilder qb = em.getCriteriaBuilder();
        CriteriaQuery<fupfile> query = qb.createQuery(fupfile.class);        
        Root<fupfile> fupfile = query.from(fupfile.class);

        Query q2 = em.createQuery("DELETE FROM fupfile");
        q2.executeUpdate();

    }

例外:

原因:异常 [EclipseLink-8029] (Eclipse Persistence Services - 2.3.2.v20111125-r10461): org.eclipse.persistence.exceptions.JPQLException 异常描述:编译查询 [DELETE FROM fupfile] 时出错,第 1 行,第 26 列:导航表达式 [fupfile.id] 无效,无法在查询中导航 [java.lang.Class] 类型的表达式 [fupfile]。 在 org.eclipse.persistence.exceptions.JPQLException.invalidNavigation(JPQLException.java:413)

【问题讨论】:

  • 有没有抛出异常?
  • 此代码不会编译,因为大小写在 java 中很重要。 Fupfilefupfile 是不同的名称。
  • 您好 nailgun,对不起,代码中的拼写错误是正确的,但仍然无法正常工作,发布在抛出的异常上方。谢谢
  • 我相信问题出在“DELETE FROM fupfile”这一行,但还没有弄清楚如何解决它
  • Andrei 我发布了上述异常感谢您的帮助

标签: java mysql jpa jpa-2.0 eclipselink


【解决方案1】:

现在是的,下面的代码完美运行,谢谢大家的帮助!

public void deleteTabelaFupfile(){
        EntityManager em = getEntityManager();

        em.getTransaction().begin();

        Query q2 = em.createQuery("DELETE FROM fupfile e");
        q2.executeUpdate(); 

        em.getTransaction().commit();
    }

下面的链接对我帮助很大; JPA No transaction is currently active

【讨论】:

    猜你喜欢
    • 2011-10-14
    • 1970-01-01
    • 2016-05-06
    • 2013-02-11
    • 2015-03-30
    • 2011-05-13
    • 2017-06-03
    • 1970-01-01
    相关资源
    最近更新 更多