Java 尝试使用生成的命名查询时sqlException中出错

Java 尝试使用生成的命名查询时sqlException中出错,java,mysql,sql,jpa,eclipselink,Java,Mysql,Sql,Jpa,Eclipselink,我创建了一个bean: package beans; import java.util.List; import javax.ejb.LocalBean; import javax.ejb.Stateless; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; import mazeJPA.Forumcategory; /** * Session Bean imple

我创建了一个bean:

package beans;

import java.util.List;

import javax.ejb.LocalBean;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

import mazeJPA.Forumcategory;

/**
 * Session Bean implementation class ForumBean
 */
@Stateless
@LocalBean
public class ForumBean
{

    @PersistenceContext(unitName = "mazeEJB")
    private EntityManager em;

    /**
     * Default constructor.
     */
    public ForumBean(){}


    public List<Forumcategory> getCategories()
    {
        return em.createNamedQuery
        (
                "Forumcategory.findAll", Forumcategory.class
        ).getResultList();
    }
}
当我从servlet调用getCategories()时,我得到一个sql异常:

 Internal Exception:
 com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an
 error in your SQL syntax; check the manual that corresponds to your
 MySQL server version for the right syntax to use near 'DESC, NAME FROM
 forumcategory' at line 1 Error Code: 1064 Call: SELECT CID, DESC, NAME
 FROM forumcategory Query: ReadAllQuery(name="Forumcategory.findAll"
 referenceClass=Forumcategory sql="SELECT CID, DESC, NAME FROM
 forumcategory")
我的桌子是:

  cid INT NOT NULL, name VARCHAR(255) NOT NULL, desc TEXT NOT NULL,
  PRIMARY KEY (cid)

我不知道为什么会这样。我的地图有问题吗?我最近才在我的项目中添加了这一点,即与之相关的任何事情,即我是否必须一次生成所有表?

DESC
是一个sql word,因此您必须使用
DESC
对其进行替换

SELECT CID, `DESC`, NAME FROM ...

DESC
是一个sql单词,因此您必须使用
DESC
对其进行替换

SELECT CID, `DESC`, NAME FROM ...

DESC
是一个sql单词,因此您必须使用
DESC
对其进行替换

SELECT CID, `DESC`, NAME FROM ...

DESC
是一个sql单词,因此您必须使用
DESC
对其进行替换

SELECT CID, `DESC`, NAME FROM ...


DESC是大多数SQL中的保留关键字。似乎您的JPA提供商不会自动为您转义这些(用引号括起来)。一些JPA实现(例如DataNucleus JPA)可以为您这样做。

DESC是大多数SQL中的保留关键字。似乎您的JPA提供商不会自动为您转义这些(用引号括起来)。一些JPA实现(例如DataNucleus JPA)可以为您这样做。

DESC是大多数SQL中的保留关键字。似乎您的JPA提供商不会自动为您转义这些(用引号括起来)。一些JPA实现(例如DataNucleus JPA)可以为您这样做。

DESC是大多数SQL中的保留关键字。似乎您的JPA提供商不会自动为您转义这些(用引号括起来)。一些JPA实现(例如DataNucleus JPA)可以为您做到这一点。

谢谢,我应该意识到这一点。不客气,有时会发生这种情况;)。我会尽量避免使用这个名字,因为这个专栏是可能的。我把它改成了我应该首先使用的描述。好主意@一六四。如果答案对你有帮助,请记住接受它。谢谢你,我应该意识到这一点。不客气,有时会发生这种情况;)。我会尽量避免使用这个名字,因为这个专栏是可能的。我把它改成了我应该首先使用的描述。好主意@一六四。如果答案对你有帮助,请记住接受它。谢谢你,我应该意识到这一点。不客气,有时会发生这种情况;)。我会尽量避免使用这个名字,因为这个专栏是可能的。我把它改成了我应该首先使用的描述。好主意@一六四。如果答案对你有帮助,请记住接受它。谢谢你,我应该意识到这一点。不客气,有时会发生这种情况;)。我会尽量避免使用这个名字,因为这个专栏是可能的。我把它改成了我应该首先使用的描述。好主意@一六四。如果答案对你有帮助,请记住接受它。