select new Article(articleClass,uuid,title,createDate,readerNum,criticismNum,poll) from Articlepackage net.ynyee.school.orm.bean;import java.io.Serializable;
import java.util.Date;public class Article implements Serializable { private static final long serialVersionUID = 1L; public Article() {
// TODO Auto-generated constructor stub
} public Article(String uuid, String title, Date createDate,
ArticleClass articleClass) {
super();
this.uuid = uuid;
this.title = title;
this.createDate = createDate;
this.articleClass = articleClass;
} public Article(ArticleClass articleClass, String uuid, String title,
Date createDate, long readerNum, long criticismNum, int poll) {
super();
this.uuid = uuid;
this.title = title;
this.createDate = createDate;
this.articleClass = articleClass;
this.readerNum = readerNum;
this.criticismNum = criticismNum;
this.poll = poll;
} /** 文章编号 */
private String uuid = null;
/** 文章标题 */
private String title = null;
/** 文章正文 */
private String content = null;
/** 发表时间 */
private Date createDate = null;
/** 最后修改时间 */
private Date lastModifyDateTime = null;
/** 作者 */
private User author = null;
/** 作者名称 */
private String authorName = null;
/** 所属文章分类 */
private ArticleClass articleClass = null;
/** 文章浏览量 */
private long readerNum = 0;
/** 评论数量 */
private long criticismNum = 0;
/** 草稿 */
private int draft = 0;
/** 标签 */
private String tags = null;
/** 投票 */
private int poll = 0;
/** 投票时长 */
private int pollLifeDay = 0;
/** 投票多选开关 */
private int pollMultiple = 0;
/** 赞成 */
private long agree = 0;
/** 反对 */
private long denial = 0; public Date getCreateDate() {
return createDate;
} public void setCreateDate(Date createDate) {
this.createDate = createDate;
} public String getContent() {
return content;
} public void setContent(String content) {
this.content = content;
} public ArticleClass getArticleClass() {
return articleClass;
} public void setArticleClass(ArticleClass articleClass) {
this.articleClass = articleClass;
} public void setAuthorName(String authorName) {
this.authorName = authorName;
} public String getAuthorName() {
return authorName;
} public long getAgree() {
return agree;
} public void setAgree(long agree) {
this.agree = agree;
} public long getDenial() {
return denial;
} public void setDenial(long denial) {
this.denial = denial;
} public long getCriticismNum() {
return criticismNum;
} public void setCriticismNum(long criticismNum) {
this.criticismNum = criticismNum;
} public String getTags() {
return tags;
} public void setTags(String tags) {
this.tags = tags;
} public String getUuid() {
return uuid;
} public void setUuid(String uuid) {
this.uuid = uuid;
} public Date getLastModifyDateTime() {
return lastModifyDateTime;
} public void setLastModifyDateTime(Date lastModifyDateTime) {
this.lastModifyDateTime = lastModifyDateTime;
} public long getReaderNum() {
return readerNum;
} public void setReaderNum(long readerNum) {
this.readerNum = readerNum;
} public String getTitle() {
return title;
} public void setTitle(String title) {
this.title = title;
} public int getPollLifeDay() {
return pollLifeDay;
} public void setPollLifeDay(int pollLifeDay) {
this.pollLifeDay = pollLifeDay;
} public int getDraft() {
return draft;
} public void setDraft(int draft) {
this.draft = draft;
} public int getPoll() {
return poll;
} public void setPoll(int poll) {
this.poll = poll;
} public int getPollMultiple() {
return pollMultiple;
} public void setPollMultiple(int pollMultiple) {
this.pollMultiple = pollMultiple;
} public User getAuthor() {
return author;
} public void setAuthor(User author) {
this.author = author;
}
}package net.ynyee.school.orm.bean;import java.io.Serializable;
import java.util.List;public class ArticleClass implements Serializable { private static final long serialVersionUID = 1L; /** 文章类别编号 */
private int classId = 0;
/** 父级分类 */
private ArticleClass parent = null;
/** 这个类别的子分类 */
private List<ArticleClass> childrens = null;
/** 文章类别名称 */
private String className = null;
/** 此分类下的文章数量 */
private long articleNum = 0;
/** 子分类数量 */
private int childNum = 0; public int getChildNum() {
return childNum;
} public void setChildNum(int childNum) {
this.childNum = childNum;
} public void setChildrens(List<ArticleClass> childrens) {
this.childrens = childrens;
} public List<ArticleClass> getChildrens() {
return childrens;
} public long getArticleNum() {
return articleNum;
} public void setArticleNum(long articleNum) {
this.articleNum = articleNum;
} public int getClassId() {
return classId;
} public void setClassId(int classId) {
this.classId = classId;
} public ArticleClass getParent() {
return parent;
} public void setParent(ArticleClass parent) {
this.parent = parent;
} public String getClassName() {
return className;
} public void setClassName(String className) {
this.className = className;
}
}因为不需要把Article的全部字段都查询出来,所以没有用from Article ,但是这样写不行啊。
错误:
java.lang.NullPointerException
at org.hibernate.util.ReflectHelper.getConstructor(ReflectHelper.java:172)好像是说我没有写构造,但是我已经写了啊。求救。已经修改来修改去修改了5个小时了。
如果去掉articleClass,就可以查询了,加上就出这个错误。
import java.util.Date;public class Article implements Serializable { private static final long serialVersionUID = 1L; public Article() {
// TODO Auto-generated constructor stub
} public Article(String uuid, String title, Date createDate,
ArticleClass articleClass) {
super();
this.uuid = uuid;
this.title = title;
this.createDate = createDate;
this.articleClass = articleClass;
} public Article(ArticleClass articleClass, String uuid, String title,
Date createDate, long readerNum, long criticismNum, int poll) {
super();
this.uuid = uuid;
this.title = title;
this.createDate = createDate;
this.articleClass = articleClass;
this.readerNum = readerNum;
this.criticismNum = criticismNum;
this.poll = poll;
} /** 文章编号 */
private String uuid = null;
/** 文章标题 */
private String title = null;
/** 文章正文 */
private String content = null;
/** 发表时间 */
private Date createDate = null;
/** 最后修改时间 */
private Date lastModifyDateTime = null;
/** 作者 */
private User author = null;
/** 作者名称 */
private String authorName = null;
/** 所属文章分类 */
private ArticleClass articleClass = null;
/** 文章浏览量 */
private long readerNum = 0;
/** 评论数量 */
private long criticismNum = 0;
/** 草稿 */
private int draft = 0;
/** 标签 */
private String tags = null;
/** 投票 */
private int poll = 0;
/** 投票时长 */
private int pollLifeDay = 0;
/** 投票多选开关 */
private int pollMultiple = 0;
/** 赞成 */
private long agree = 0;
/** 反对 */
private long denial = 0; public Date getCreateDate() {
return createDate;
} public void setCreateDate(Date createDate) {
this.createDate = createDate;
} public String getContent() {
return content;
} public void setContent(String content) {
this.content = content;
} public ArticleClass getArticleClass() {
return articleClass;
} public void setArticleClass(ArticleClass articleClass) {
this.articleClass = articleClass;
} public void setAuthorName(String authorName) {
this.authorName = authorName;
} public String getAuthorName() {
return authorName;
} public long getAgree() {
return agree;
} public void setAgree(long agree) {
this.agree = agree;
} public long getDenial() {
return denial;
} public void setDenial(long denial) {
this.denial = denial;
} public long getCriticismNum() {
return criticismNum;
} public void setCriticismNum(long criticismNum) {
this.criticismNum = criticismNum;
} public String getTags() {
return tags;
} public void setTags(String tags) {
this.tags = tags;
} public String getUuid() {
return uuid;
} public void setUuid(String uuid) {
this.uuid = uuid;
} public Date getLastModifyDateTime() {
return lastModifyDateTime;
} public void setLastModifyDateTime(Date lastModifyDateTime) {
this.lastModifyDateTime = lastModifyDateTime;
} public long getReaderNum() {
return readerNum;
} public void setReaderNum(long readerNum) {
this.readerNum = readerNum;
} public String getTitle() {
return title;
} public void setTitle(String title) {
this.title = title;
} public int getPollLifeDay() {
return pollLifeDay;
} public void setPollLifeDay(int pollLifeDay) {
this.pollLifeDay = pollLifeDay;
} public int getDraft() {
return draft;
} public void setDraft(int draft) {
this.draft = draft;
} public int getPoll() {
return poll;
} public void setPoll(int poll) {
this.poll = poll;
} public int getPollMultiple() {
return pollMultiple;
} public void setPollMultiple(int pollMultiple) {
this.pollMultiple = pollMultiple;
} public User getAuthor() {
return author;
} public void setAuthor(User author) {
this.author = author;
}
}package net.ynyee.school.orm.bean;import java.io.Serializable;
import java.util.List;public class ArticleClass implements Serializable { private static final long serialVersionUID = 1L; /** 文章类别编号 */
private int classId = 0;
/** 父级分类 */
private ArticleClass parent = null;
/** 这个类别的子分类 */
private List<ArticleClass> childrens = null;
/** 文章类别名称 */
private String className = null;
/** 此分类下的文章数量 */
private long articleNum = 0;
/** 子分类数量 */
private int childNum = 0; public int getChildNum() {
return childNum;
} public void setChildNum(int childNum) {
this.childNum = childNum;
} public void setChildrens(List<ArticleClass> childrens) {
this.childrens = childrens;
} public List<ArticleClass> getChildrens() {
return childrens;
} public long getArticleNum() {
return articleNum;
} public void setArticleNum(long articleNum) {
this.articleNum = articleNum;
} public int getClassId() {
return classId;
} public void setClassId(int classId) {
this.classId = classId;
} public ArticleClass getParent() {
return parent;
} public void setParent(ArticleClass parent) {
this.parent = parent;
} public String getClassName() {
return className;
} public void setClassName(String className) {
this.className = className;
}
}因为不需要把Article的全部字段都查询出来,所以没有用from Article ,但是这样写不行啊。
错误:
java.lang.NullPointerException
at org.hibernate.util.ReflectHelper.getConstructor(ReflectHelper.java:172)好像是说我没有写构造,但是我已经写了啊。求救。已经修改来修改去修改了5个小时了。
如果去掉articleClass,就可以查询了,加上就出这个错误。
行不
去了,试了,依然一样的错误警告: Unhandled exception
java.lang.NullPointerException
at org.hibernate.util.ReflectHelper.getConstructor(ReflectHelper.java:172)
at org.hibernate.hql.ast.tree.ConstructorNode.resolveConstructor(ConstructorNode.java:114)
at org.hibernate.hql.ast.tree.ConstructorNode.prepare(ConstructorNode.java:88)
at org.hibernate.hql.ast.HqlSqlWalker.processConstructor(HqlSqlWalker.java:847)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.selectExpr(HqlSqlBaseWalker.java:1956)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.selectExprList(HqlSqlBaseWalker.java:1825)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.selectClause(HqlSqlBaseWalker.java:1394)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.query(HqlSqlBaseWalker.java:553)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.selectStatement(HqlSqlBaseWalker.java:281)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.statement(HqlSqlBaseWalker.java:229)
at org.hibernate.hql.ast.QueryTranslatorImpl.analyze(QueryTranslatorImpl.java:228)
at org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:160)
at org.hibernate.hql.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:111)
at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:77)
at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:56)
at org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:72)
at org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:133)
at org.hibernate.impl.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:112)
at org.hibernate.impl.SessionImpl.createQuery(SessionImpl.java:1623)
at net.ynyee.school.dao.impl.ArticleDaoImpl.getLastPostArticles(ArticleDaoImpl.java:68)
为什么你要把初始值置null?
找这句话去
和这个没关系,不设置成null,浪费
public List<Article> getLastPostArticles(int length)
throws QueryArticleException, HibernateException {
Session session = null;
List<Article> articleList = null;
session = this.getSessionFactory().getCurrentSession();
// Query q = session
// .createQuery(
// " select new Article(uuid,title,createDate,articleClass,readerNum,criticismNum,poll) from Article a where a.draft=:draft order by a.createDate desc")
// .setInteger("draft", 0).setFirstResult(0).setMaxResults(length);
Query q = session //这里是68行
.createQuery(
" select new Article(articleClass,uuid,title,createDate,readerNum,criticismNum,poll) from Article ");
//.setInteger("draft", 0).setFirstResult(0).setMaxResults(length);
articleList = q.list();
//where a.draft=:draft order by a.createDate desc
return articleList;
}
System.out.println(new Article(null,null,null,null,0L,0L,0));
}Console:net.ynyee.school.orm.bean.Article@c17164
看看那个68行附近有没有null
<many-to-one name="articleClass" column="class_id" />
同意,跟踪下看看到底谁是null ,
这里面的new Article里面的参数是哪里来的?
不行,hiberante说是反射找不到我的构造。
试试这个
把包名加上!
String duty, String phone, String address,Date createdDate,
String re) {
this.userId = userId;
this.TOrganization = TOrganization;
this.userName = userName;
this.gender = gender;
this.duty = duty;
this.phone = phone;
this.address = address;
this.createdDate = createdDate;
this.re = re; } String selectHql = "select new TUser(user.userId,user.TOrganization,user.userName,user.gender,user.duty, user.phone,user.address,user.createdDate,user.re) from TUser as user ";-----------------------------------------
类型一定要看看!!最好是父类。
其次是泛型应用。