Java Hibernate条件:嵌套异常为org.Hibernate.QueryException:无法解析属性:
我正在尝试从Issue表中获取与projectname和问题Id匹配的所有数据。我遇到以下错误。请帮帮我 桌子 项目 投射 项目名称 问题 问题ID 标识符 源状态 标题 严重程度 描述 Project.javaJava Hibernate条件:嵌套异常为org.Hibernate.QueryException:无法解析属性:,java,hibernate,spring-mvc,Java,Hibernate,Spring Mvc,我正在尝试从Issue表中获取与projectname和问题Id匹配的所有数据。我遇到以下错误。请帮帮我 桌子 项目 投射 项目名称 问题 问题ID 标识符 源状态 标题 严重程度 描述 Project.java @Entity @Table(name="project") public class Project implements Serializable { private static final long serialVersionUID = 245
@Entity
@Table(name="project")
public class Project implements Serializable {
private static final long serialVersionUID = 2457316470957669814L;
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@Column(name="ProjectId")
private Integer projectId;
@Column(name="projectname")
private String projectName;
@OneToMany(fetch=FetchType.EAGER,cascade=CascadeType.ALL,mappedBy = "project")
private List<Issue> issue;
//getters and setters
}
@Entity
@Table(name="issue")
public class Issue implements Serializable{
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@Column(name="Id")
private Integer Id;
@Column(name="identifier")
private String identifier;
@Column(name="sourcestatus")
private String sourceStatus;
@Column(name="severity")
private Integer severity;
@Column(name="title")
private String title;
@Column(name="description")
private String description;
@ManyToOne
@JoinColumn(name ="ProjectId")
private Project project;
//getters and setters
}
public List<Issue> getAllIssue(String identifier,String projectName) {
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(Issue.class);
criteria.createAlias("Project", "Prj");
criteria.add(Restrictions.eq("identifier",identifier));
criteria.add(Restrictions.eq("Prj.projectName",projectName));
List<Issue> list=criteria.list();
return list;
}
IssueDAOImpl.java
@Entity
@Table(name="project")
public class Project implements Serializable {
private static final long serialVersionUID = 2457316470957669814L;
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@Column(name="ProjectId")
private Integer projectId;
@Column(name="projectname")
private String projectName;
@OneToMany(fetch=FetchType.EAGER,cascade=CascadeType.ALL,mappedBy = "project")
private List<Issue> issue;
//getters and setters
}
@Entity
@Table(name="issue")
public class Issue implements Serializable{
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@Column(name="Id")
private Integer Id;
@Column(name="identifier")
private String identifier;
@Column(name="sourcestatus")
private String sourceStatus;
@Column(name="severity")
private Integer severity;
@Column(name="title")
private String title;
@Column(name="description")
private String description;
@ManyToOne
@JoinColumn(name ="ProjectId")
private Project project;
//getters and setters
}
public List<Issue> getAllIssue(String identifier,String projectName) {
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(Issue.class);
criteria.createAlias("Project", "Prj");
criteria.add(Restrictions.eq("identifier",identifier));
criteria.add(Restrictions.eq("Prj.projectName",projectName));
List<Issue> list=criteria.list();
return list;
}
将
标准.createAlias(“项目”、“Prj”)
更改为标准.createAlias(“项目”、“Prj”)
。您试图为其创建别名的属性是project,因此应作为createAlias
的第一个参数Project是类名。您将Hibernate属性称为“ProjectId”,而不是“Project”
这应该是:
criteria.createAlias("ProjectId", "Prj");
你能发布ArchivalIssue类的内容吗?@Hedley抱歉我编辑了这篇文章。问题是我仍然无法获取数据。但是我没有收到任何错误。您能将hibernate的'show_sql'属性设置为true并在数据库上运行生成的sql吗?非常感谢。:)但我没有得到独特的价值观。获取项目中每个问题的重复项:(sql是否提供重复项?是的,我从sql获取重复值。我使用setResultTransformer获取唯一值。ThanksRequest处理失败;嵌套异常为org.hibernate.QueryException:无法解析属性:projectId of:com.dcm.search.bean.issue