这是个什么错?求大神帮忙!!!
啊哈前端 2014-04-27 09:32:43 org.hibernate.exception.SQLGrammarException: could not initialize a collection: [com.article.model.UserInfo.articlecontent#admin]
下面是两个实体类
import java.util.HashSet;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Table;
@Entity
@Table(name = "UserInfo", schema = "scott")
public class UserInfo {
private String username;// varchar2(50) primary key, --用户名称
private String pasword;// varchar2(50) , --密码
private String email;// varchar2(50) not null,--电子邮箱
private String telepone;// varchar2(12),--电话
private int logintimes;// default(0),--登录次数
private String articIDs;// varchar2(1000)--文章编号
private Set<ArticleContent> articlecontent = new HashSet<ArticleContent>();
@Id
@GeneratedValue
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPasword() {
return pasword;
}
public void setPasword(String pasword) {
this.pasword = pasword;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getTelepone() {
return telepone;
}
public void setTelepone(String telepone) {
this.telepone = telepone;
}
public int getLogintimes() {
return logintimes;
}
public void setLogintimes(int logintimes) {
this.logintimes = logintimes;
}
public String getArticIDs() {
return articIDs;
}
public void setArticIDs(String articIDs) {
this.articIDs = articIDs;
}
@OneToMany(mappedBy = "userinfo", cascade = CascadeType.ALL, fetch = FetchType.LAZY)
public Set<ArticleContent> getArticlecontent() {
return articlecontent;
}
public void setArticlecontent(Set<ArticleContent> articlecontent) {
this.articlecontent = articlecontent;
}
}
package com.article.model;
import java.util.HashSet;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Table;
@Entity
@Table(name = "UserInfo", schema = "scott")
public class UserInfo {
private String username;// varchar2(50) primary key, --用户名称
private String pasword;// varchar2(50) , --密码
private String email;// varchar2(50) not null,--电子邮箱
private String telepone;// varchar2(12),--电话
private int logintimes;// default(0),--登录次数
private String articIDs;// varchar2(1000)--文章编号
private Set<ArticleContent> articlecontent = new HashSet<ArticleContent>();
@Id
@GeneratedValue
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPasword() {
return pasword;
}
public void setPasword(String pasword) {
this.pasword = pasword;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getTelepone() {
return telepone;
}
public void setTelepone(String telepone) {
this.telepone = telepone;
}
public int getLogintimes() {
return logintimes;
}
public void setLogintimes(int logintimes) {
this.logintimes = logintimes;
}
public String getArticIDs() {
return articIDs;
}
public void setArticIDs(String articIDs) {
this.articIDs = articIDs;
}
@OneToMany(mappedBy = "userinfo", cascade = CascadeType.ALL, fetch = FetchType.LAZY)
public Set<ArticleContent> getArticlecontent() {
return articlecontent;
}
public void setArticlecontent(Set<ArticleContent> articlecontent) {
this.articlecontent = articlecontent;
}
}
这是action
import java.util.Iterator;
import java.util.Set;
import com.article.model.ArticleContent;
import com.article.model.UserInfo;
import com.article.service.ArticleSer;
import com.opensymphony.xwork2.ActionSupport;
public class ArticleQueryAction extends ActionSupport {
/**
*
*/
private static final long serialVersionUID = 1L;
private ArticleSer as = new ArticleSer();
private String username;
private String password;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String Query_Login() {
UserInfo ui = as.Search_Login(username, password);
if (ui == null) {
System.out.println("失败!");
return "fail";
} else {
System.out.println("成功!");
Set articlecontent= ui.getArticlecontent();
Iterator<ArticleContent> article=articlecontent.iterator();
while(article.hasNext()){
ArticleContent ac=article.next();
System.out.println(ac.getMaincontent());
}
as.Update_LoginTimes(ui);
return SUCCESS;
}
}
}
运行到
Iterator<ArticleContent> article=articlecontent.iterator();
这里就报错了
当我把one to many 的fetch改为eager也会报同样的错误!
org.hibernate.exception.SQLGrammarException: could not initialize a collection: [com.article.model.UserInfo.articlecontent#admin]
求大神帮忙!!!小弟感激不敬!!