日期:2014-05-17  浏览次数:20641 次

hibernate查询时的一个小问题,困扰我一整天了,详细问题入下:
问题就是:查询时候报错了,不多说,直接贴代码和错误吧!
这个是Email实体类:
Java code

package com.alan.easyoa.entity;

import java.util.ArrayList;
import java.util.List;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.ManyToMany;
import javax.persistence.SequenceGenerator;


@Entity
@SequenceGenerator(name="emailSe",sequenceName="emailSequence")
public class Email {
    private Integer id;    //id
    private List<Employee> employees = new ArrayList<Employee>();    //发送给那些员工
    private List<Department> Departments = new ArrayList<Department>();    //发送给那些部门
    private String title;        //邮件标题
    private String content;        //邮件内容
    private String sendTime;        //邮件发送时间
    private boolean isSend;        //true代表发送,false代表接收
    
    /*********getter 和   setter 方法********************/
    
    @Id
    @GeneratedValue(generator="emailSe")
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    @ManyToMany
    public List<Employee> getEmployees() {
        return employees;
    }
    public void setEmployees(List<Employee> employees) {
        this.employees = employees;
    }
    @ManyToMany
    public List<Department> getDepartments() {
        return Departments;
    }
    public void setDepartments(List<Department> departments) {
        Departments = departments;
    }
    public String getTitle() {
        return title;
    }
    public void setTitle(String title) {
        this.title = title;
    }
    public String getContent() {
        return content;
    }
    public void setContent(String content) {
        this.content = content;
    }
    public String getSendTime() {
        return sendTime;
    }
    public void setSendTime(String sendTime) {
        this.sendTime = sendTime;
    }
    public boolean isSend() {
        return isSend;
    }
    public void setSend(boolean isSend) {
        this.isSend = isSend;
    }
}




Employee实体代码:
Java code

package com.alan.easyoa.entity;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.ManyToMany;
import javax.persistence.ManyToOne;


/**
 * 
 * 员工实体类
 * @author Alan
 *
 */
@Entity
public class Employee implements Serializable {

    private static final long serialVersionUID = 760623822991124471L;
    private String email;    //Email也就是登录账号
    private String password;    //密码
    private String name;    //姓名
    private Integer age;    //年龄
    private String sex;        //性别
    private String contactInfo;    //联系方式
    private Department department;    //部门
    private List<Email> emails = new ArrayList<Email>();    //该员工发送的所有邮件,这个基本没用,如果用它的话一次性全取出来服务器受不了
    
    public Employee(){}
    

    /*********getter 和   setter 方法********************/
    @Id
    public String getEmail() {
        return email;
    }
    public void setEmail(String email) {
        this.email = email;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public Integer getAge() {
        return age;
    }
    public void setAge(Integer age) {
        this.age = age;
    }
    public String getSex() {
        return sex;
    }
    public void setSex(String sex) {
        this.sex = sex;
    }
    public St