- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我对如何在 NamedQueries 中使用正确的 HQL 有疑问和问题,我阅读了很多文章,并在我的项目中做了一些测试,但我有一个问题,我不知道为什么我会遇到这个问题,对我来说一切正常,请查看堆栈跟踪:
SEVERE: Servlet.service() for servlet [Faces Servlet] in context with path [/EMS2App] threw exception [java.lang.ExceptionInInitializerError] with root cause
org.hibernate.HibernateException: Errors in named queries: ProjectMediator.findProjectByIdProjectMediator, Project.findProjectWithStatus
ProjectMediator 类:
@Entity
@NamedQueries({
@NamedQuery(name = "ProjectMediator.findProjectByIdProjectMediator",
query = "SELECT pm FROM ProjectMediator pm WHERE pm.project.id := idProject")
})
public class ProjectMediator implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
public static final String FIND_PROJECT_BY_ID_PROJECTMEDIATOR = "ProjectMediator.findProjectByIdProjectMediator";
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private int id;
@OneToOne
@JoinColumn(name="id_project")
private Project project;
ProjectMediatorDAO 类:
public class ProjectMediatorDAO extends GenericDAO<ProjectMediator>{
private static final long serialVersionUID = 1L;
public ProjectMediatorDAO () {
super(ProjectMediator.class);
}
public ProjectMediator findProjectByIdProjectMediator (int idProject) {
Map<String,Object> parameters = new HashMap<String,Object>();
parameters.put("idProject",idProject);
return super.findOneResult(ProjectMediator.FIND_PROJECT_BY_ID_PROJECTMEDIATOR, parameters);
}
}
Project 类是否存在同样的问题:
@Entity
@NamedQueries ({
@NamedQuery (name="Project.findProjectWithStatus",query="SELECT p FROM Project p WHERE p.statusProject := statusProject"),
})
public class Project implements Serializable {
private static final long serialVersionUID = 1L;
public static final String FIND_PROJECT_WITH_STATUS = "Project.findProjectWithStatus";
//Attributes
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private int id;
@Column(name="STATUS_PROJECT",columnDefinition="BIT", length=1)
private Boolean statusProject;
//gets and sets
}
ProjectDAO 类:
public class ProjectDAO extends GenericDAO<Project> {
private static final long serialVersionUID = 1L;
public ProjectDAO() {
super(Project.class);
}
public List<Project> findProjectWithStatus(Boolean statusProject) {
Map<String, Object> parameters = new HashMap<String, Object>();
parameters.put("statusProject", statusProject);
return super.findManyResult(Project.FIND_PROJECT_WITH_STATUS,parameters);
}
}
谢谢!!
最佳答案
HQL 的语法已关闭。 :
位于参数之前,=
是静态查询的一部分。
更改:
SELECT pm FROM ProjectMediator pm WHERE pm.project.id := idProject
至
SELECT pm FROM ProjectMediator pm WHERE pm.project.id = :idProject
您的第二个 HQL 查询中也存在此问题。
@NamedQuery (name="Project.findProjectWithStatus",
query="SELECT p FROM Project p WHERE p.statusProject := statusProject")
更正表格
@NamedQuery (name="Project.findProjectWithStatus",
query="SELECT p FROM Project p WHERE p.statusProject = :statusProject")
关于java - 如何在NamedQuery中使用正确的HQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16809739/
是否可以从另一个命名查询中调用命名查询?如果是这样,请在您的答案中举一个简单的例子。 上下文: 我有一个子查询,它将在其他一些查询中重复,并且不想成为维护噩梦。 @NamedQuery(name =
在我看来,定义 static namedQueries = {} 在层次结构的子类中完全屏蔽了父类(super class)的 namedQueries 声明。有没有办法让两者都工作?说使用 supe
关闭。这个问题是opinion-based 。目前不接受答案。 想要改进这个问题吗?更新问题,以便 editing this post 可以用事实和引文来回答它。 . 已关闭10 年前。 Improv
假设我有以下 2 个类(class): @Entity class Article { @Id int id; @ManyToMany(mappedBy="articles")
再次,基于 a problem I had the other day 为他人的利益发布并回答问题。希望这可以节省一些人的时间。我有点惊讶这没有内置到 JPA 的 EntityManager 中。 如
我已经从数据库生成了一个实体类,并且在 @NamedQueries 注释中创建了一些可用的“默认”查询。因此,当我必须创建新的 sql 查询时,我只需编写 @NamedQuery 并使用名称和新的 s
我是 JSP/EL/EJB 世界的新手,所以请仔细考虑...呵呵 我的问题是 PREVIOUS Q? 的延续 所以在上面问题的评论/答案中建议使用customerFacade.findByUserNa
我在实体中创建了简单的@NamedQuery: @NamedQueries({ @NamedQuery(name = ProductChangeLog.GetByDate, query
我有这样的查询: SELECT * FROM MyTable mt WHERE mt.firstCondition = :var1 AND mt.secondCondition = :var2 var
我想定义一些命名查询,例如: @Entity @Table(name = "TableA") @NamedQuery(query = "SELECT i FROM TableA i WHERE i.I
我尝试执行此查询,但它仍然选择每个 child ,即使我只想要具有特定名称的 child 。我该如何实现这一目标? @NamedQuery(name="Parent.getChildrenWithNa
大家好,我在执行 NamedQuery 时遇到了一些精确匹配的问题。 我目前正在使用这样的东西: @NamedQuery(name = MyClass.GET_ENTRY_BY_NAME, query
我正在使用常量来组织我的@NamedQueries,但我对参数有疑问,是否也将常量用作参数是一种好习惯? 例如,在整个应用程序中,我的 NamedQueries 按公司 ID 筛选。所以我创建了: p
我有 20 个继承自 AbstractEntity 的类,它们都需要具有相同的 NamedQueries,作为示例,我们举一个简单的例子: @NamedQuery(name = Bootle.FIND
我正在使用 JPQL 和 NamedQuery 在组合问题中查询数据库。 @NamedQuery(name = "Entry.findAllForName", query = "Select p Fr
我是 Hibernate 的新手,我遇到以下情况,我不知道如何处理。 所以我有这两个实体类: KMCountryArea 在我的数据库上映射 KM_COUNTRY_AREA 表: @NamedQuer
我有一个小型 Grails 应用程序。我决定制作一个 Multi-Tenancy 架构。我在 DataSource.groovy 中定义了几个数据源。 问题是我在我的域模型类中定义了几个命名查询。 尝
我正在使用带有 Hibernate 的 Java 1.7。 我有下表: CREATE TABLE public.approvalautoselectionconfig ( id bigint
我在使用 hibernate @NamedQueries 时遇到问题。我有一个表 SCP_PMAT,其中列名为“group”。在映射中没有问题。我用括号解决了这个问题。 public class Sc
晚上好!我正在尝试将查询中的值设置为包装类 TestWrapper TestWrapper 类: package com.bionic.wrappers; public class TestWrapp
我是一名优秀的程序员,十分优秀!