帮助我在JPA中选择查询时遇到问题

时间:2008-11-29 12:28:28

标签: java jpa

5 个答案:

答案 0 :(得分:2)

你可能应该说错误是什么。

但是,假设您有一个实体杂志,那么查询应该是:

 select m from Magazine m

如果你想要所有的杂志。

答案 1 :(得分:2)

答案就在你的例外的调用堆栈中:

Error compiling the query [Select m.Jenis_Motor from motor m]. Unknown abstract schema type [motor].

这不是杂志查询的问题,而是另一个格式错误的查询 - 可能是在其他地方定义的命名查询。

答案 2 :(得分:1)

为此,您需要一个如此定义的实体:

@Entity
@Table(name = "magazines")
public class Magazine {
  /*
   * Some more attributes
   */

  @Column(name = "name_magazine")
  private String name;

  /*
   * Constructors, getters and setters
   */
}

此外,您需要一个指向您的实体的persistence.xml文件。如果所有这些都已到位,则此查询应该有效,并为您提供所有杂志的列表。

from Magazine m

您指定的查询是对此的投影,并且我在上面显示的实体应该是

select m.name from Magazine m 

希望这会有所帮助。 :)

答案 3 :(得分:1)

你重命名了吗?

类名可能与命名查询中使用的名称不同

答案 4 :(得分:0)

如果您正在使用JPA,那么在Query中您需要编写className和object,如下所示

Query q = EntityManger.createQuery ("SELECT name_magazine e FROM Magazine e");

e是杂志课的一个对象。 如果您在EntityManager中创建查询时遇到此异常 查看你需要在persistence-unit标签

之后在此文件中添加类的persistance.xml文件
<class>PackageName.className</class>