Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 向量无法强制转换到IUser_Java - Fatal编程技术网

Java 向量无法强制转换到IUser

Java 向量无法强制转换到IUser,java,Java,=============================== 现在我的登录页面有问题;向量无法强制转换到IUser 我的无状态Bean /* * To change this template, choose Tools | Templates * and open the template in the editor. */ package com.DAO; import com.entity.IUser; import java.util.List; import javax.e

===============================

现在我的登录页面有问题;向量无法强制转换到IUser

我的无状态Bean

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package com.DAO;

import com.entity.IUser;
import java.util.List;
import javax.ejb.Stateless;
import javax.ejb.LocalBean;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;

/**
 *
 * @author Kency
 */
@Stateless
@LocalBean
public class UserBean {
    @PersistenceContext(unitName = "mcGrawLibPro-ejbPU")
    private EntityManager em;


    public List<IUser> retrieveAllUser(){
        return em.createNamedQuery("IUser.findAll").getResultList();
    }

     public IUser userLogin(String username, String password){
    Query query = em.createNamedQuery("IUser.findByUsernameAndPassword");
    query.setParameter("username", username);
    query.setParameter("password", password);
    return  (IUser) query.getResultList();
   }

    public void persist(Object object) {
        em.persist(object);
    }

    public IUser findByID(Integer id){
        return em.find(IUser.class, id);
    }

    // Add business logic below. (Right-click in editor and choose
    // "Insert Code > Add Business Method")

}
我的实体豆

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package com.entity;

import java.io.Serializable;
import java.util.Date;
import java.util.List;
import javax.persistence.Basic;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

/**
 *
 * @author Kency
 */
@Entity
@Table(name = "user")
@NamedQueries({
    @NamedQuery(name = "IUser.findAll", query = "SELECT i FROM IUser i"),
    @NamedQuery(name = "IUser.findByUserid", query = "SELECT i FROM IUser i WHERE i.userid = :userid"),
    @NamedQuery(name = "IUser.findByUsername", query = "SELECT i FROM IUser i WHERE i.username = :username"),
    @NamedQuery(name = "IUser.findByPassword", query = "SELECT i FROM IUser i WHERE i.password = :password"),
    @NamedQuery(name = "IUser.findByEmail", query = "SELECT i FROM IUser i WHERE i.email = :email"),
    @NamedQuery(name = "IUser.findByGender", query = "SELECT i FROM IUser i WHERE i.gender = :gender"),
    @NamedQuery(name = "IUser.findByDob", query = "SELECT i FROM IUser i WHERE i.dob = :dob"),
    @NamedQuery(name = "IUser.findByZipcode", query = "SELECT i FROM IUser i WHERE i.zipcode = :zipcode"),
    @NamedQuery(name = "IUser.findByIstate", query = "SELECT i FROM IUser i WHERE i.istate = :istate"),
    @NamedQuery(name = "IUser.findByAddress", query = "SELECT i FROM IUser i WHERE i.address = :address"),
    @NamedQuery(name = "IUser.findByCity", query = "SELECT i FROM IUser i WHERE i.city = :city"),
    @NamedQuery(name = "IUser.findByUsernameAndPassword", query = "SELECT i FROM IUser i WHERE i.username = :username AND i.password = :password "),
    @NamedQuery(name = "IUser.findByActive", query = "SELECT i FROM IUser i WHERE i.active = :active")})
public class IUser implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Basic(optional = false)
    @Column(name = "userid")
    private Integer userid;
    @Basic(optional = false)
    @Column(name = "username")
    private String username;
    @Basic(optional = false)
    @Column(name = "password")
    private String password;
    @Basic(optional = false)
    @Column(name = "email")
    private String email;
    @Basic(optional = false)
    @Column(name = "gender")
    private String gender;
    @Basic(optional = false)
    @Column(name = "dob")
    @Temporal(TemporalType.TIMESTAMP)
    private Date dob;
    @Basic(optional = false)
    @Column(name = "zipcode")
    private int zipcode;
    @Basic(optional = false)
    @Column(name = "istate")
    private String istate;
    @Basic(optional = false)
    @Column(name = "address")
    private String address;
    @Basic(optional = false)
    @Column(name = "city")
    private String city;
    @Basic(optional = false)
    @Column(name = "active")
    private boolean active;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "iUser")
    private List<Rent> rentList;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "iUser")
    private List<Cart> cartList;
    @JoinColumn(name = "igroup", referencedColumnName = "groupsid")
    @ManyToOne(optional = false)
    private Groups groups;

    public IUser() {
    }

    public IUser(Integer userid) {
        this.userid = userid;
    }

     public IUser(String  username, String password) {
       this.username = username;
       this.password = password;
    }

    public IUser(Integer userid, String username, String password, String email, String gender, Date dob, int zipcode, String istate, String address, String city, boolean active) {
        this.userid = userid;
        this.username = username;
        this.password = password;
        this.email = email;
        this.gender = gender;
        this.dob = dob;
        this.zipcode = zipcode;
        this.istate = istate;
        this.address = address;
        this.city = city;
        this.active = active;
    }

    public Integer getUserid() {
        return userid;
    }

    public void setUserid(Integer userid) {
        this.userid = userid;
    }

    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 getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getGender() {
        return gender;
    }

    public void setGender(String gender) {
        this.gender = gender;
    }

    public Date getDob() {
        return dob;
    }

    public void setDob(Date dob) {
        this.dob = dob;
    }

    public int getZipcode() {
        return zipcode;
    }

    public void setZipcode(int zipcode) {
        this.zipcode = zipcode;
    }

    public String getIstate() {
        return istate;
    }

    public void setIstate(String istate) {
        this.istate = istate;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public String getCity() {
        return city;
    }

    public void setCity(String city) {
        this.city = city;
    }

    public boolean getActive() {
        return active;
    }

    public void setActive(boolean active) {
        this.active = active;
    }

    public List<Rent> getRentList() {
        return rentList;
    }

    public void setRentList(List<Rent> rentList) {
        this.rentList = rentList;
    }

    public List<Cart> getCartList() {
        return cartList;
    }

    public void setCartList(List<Cart> cartList) {
        this.cartList = cartList;
    }

    public Groups getGroups() {
        return groups;
    }

    public void setGroups(Groups groups) {
        this.groups = groups;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (userid != null ? userid.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof IUser)) {
            return false;
        }
        IUser other = (IUser) object;
        if ((this.userid == null && other.userid != null) || (this.userid != null && !this.userid.equals(other.userid))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "com.entity.IUser[userid=" + userid + "]";
    }

}
向量有错误,无法转换到IUser 我不知道为什么会出错? 我创建了一个类来转换IUser,但为什么会出错? 但是当我将query.getResultlist()更改为==>query.getSingleResult()时;它工作得很好 为什么? (现在我还没有检查用户登录,也没有尝试创建登录页面)

我假设
query.getResultList()
返回一个向量。您将需要拉出第一个值并适当地转换它。现在你正在铸造完整的结果列表

另外请注意,检查结果列表是否实际包含1个值(通常仅包含一个值)是一种很好的做法

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package com.entity;

import java.io.Serializable;
import java.util.Date;
import java.util.List;
import javax.persistence.Basic;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

/**
 *
 * @author Kency
 */
@Entity
@Table(name = "user")
@NamedQueries({
    @NamedQuery(name = "IUser.findAll", query = "SELECT i FROM IUser i"),
    @NamedQuery(name = "IUser.findByUserid", query = "SELECT i FROM IUser i WHERE i.userid = :userid"),
    @NamedQuery(name = "IUser.findByUsername", query = "SELECT i FROM IUser i WHERE i.username = :username"),
    @NamedQuery(name = "IUser.findByPassword", query = "SELECT i FROM IUser i WHERE i.password = :password"),
    @NamedQuery(name = "IUser.findByEmail", query = "SELECT i FROM IUser i WHERE i.email = :email"),
    @NamedQuery(name = "IUser.findByGender", query = "SELECT i FROM IUser i WHERE i.gender = :gender"),
    @NamedQuery(name = "IUser.findByDob", query = "SELECT i FROM IUser i WHERE i.dob = :dob"),
    @NamedQuery(name = "IUser.findByZipcode", query = "SELECT i FROM IUser i WHERE i.zipcode = :zipcode"),
    @NamedQuery(name = "IUser.findByIstate", query = "SELECT i FROM IUser i WHERE i.istate = :istate"),
    @NamedQuery(name = "IUser.findByAddress", query = "SELECT i FROM IUser i WHERE i.address = :address"),
    @NamedQuery(name = "IUser.findByCity", query = "SELECT i FROM IUser i WHERE i.city = :city"),
    @NamedQuery(name = "IUser.findByUsernameAndPassword", query = "SELECT i FROM IUser i WHERE i.username = :username AND i.password = :password "),
    @NamedQuery(name = "IUser.findByActive", query = "SELECT i FROM IUser i WHERE i.active = :active")})
public class IUser implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Basic(optional = false)
    @Column(name = "userid")
    private Integer userid;
    @Basic(optional = false)
    @Column(name = "username")
    private String username;
    @Basic(optional = false)
    @Column(name = "password")
    private String password;
    @Basic(optional = false)
    @Column(name = "email")
    private String email;
    @Basic(optional = false)
    @Column(name = "gender")
    private String gender;
    @Basic(optional = false)
    @Column(name = "dob")
    @Temporal(TemporalType.TIMESTAMP)
    private Date dob;
    @Basic(optional = false)
    @Column(name = "zipcode")
    private int zipcode;
    @Basic(optional = false)
    @Column(name = "istate")
    private String istate;
    @Basic(optional = false)
    @Column(name = "address")
    private String address;
    @Basic(optional = false)
    @Column(name = "city")
    private String city;
    @Basic(optional = false)
    @Column(name = "active")
    private boolean active;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "iUser")
    private List<Rent> rentList;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "iUser")
    private List<Cart> cartList;
    @JoinColumn(name = "igroup", referencedColumnName = "groupsid")
    @ManyToOne(optional = false)
    private Groups groups;

    public IUser() {
    }

    public IUser(Integer userid) {
        this.userid = userid;
    }

     public IUser(String  username, String password) {
       this.username = username;
       this.password = password;
    }

    public IUser(Integer userid, String username, String password, String email, String gender, Date dob, int zipcode, String istate, String address, String city, boolean active) {
        this.userid = userid;
        this.username = username;
        this.password = password;
        this.email = email;
        this.gender = gender;
        this.dob = dob;
        this.zipcode = zipcode;
        this.istate = istate;
        this.address = address;
        this.city = city;
        this.active = active;
    }

    public Integer getUserid() {
        return userid;
    }

    public void setUserid(Integer userid) {
        this.userid = userid;
    }

    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 getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getGender() {
        return gender;
    }

    public void setGender(String gender) {
        this.gender = gender;
    }

    public Date getDob() {
        return dob;
    }

    public void setDob(Date dob) {
        this.dob = dob;
    }

    public int getZipcode() {
        return zipcode;
    }

    public void setZipcode(int zipcode) {
        this.zipcode = zipcode;
    }

    public String getIstate() {
        return istate;
    }

    public void setIstate(String istate) {
        this.istate = istate;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public String getCity() {
        return city;
    }

    public void setCity(String city) {
        this.city = city;
    }

    public boolean getActive() {
        return active;
    }

    public void setActive(boolean active) {
        this.active = active;
    }

    public List<Rent> getRentList() {
        return rentList;
    }

    public void setRentList(List<Rent> rentList) {
        this.rentList = rentList;
    }

    public List<Cart> getCartList() {
        return cartList;
    }

    public void setCartList(List<Cart> cartList) {
        this.cartList = cartList;
    }

    public Groups getGroups() {
        return groups;
    }

    public void setGroups(Groups groups) {
        this.groups = groups;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (userid != null ? userid.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof IUser)) {
            return false;
        }
        IUser other = (IUser) object;
        if ((this.userid == null && other.userid != null) || (this.userid != null && !this.userid.equals(other.userid))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "com.entity.IUser[userid=" + userid + "]";
    }

}
package com.mcgraw.controller;


import com.entity.IUser;
import javax.faces.application.FacesMessage;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.convert.Converter;
import javax.faces.convert.ConverterException;
import javax.faces.convert.FacesConverter;

/**
 *
 * @author Kency
 */
@FacesConverter(forClass=IUser.class)
public class UserConverter  implements Converter{
    private IUser user;


    @Override
    public Object getAsObject(FacesContext context, UIComponent component, String value) {


        if(user == null){
        user = new IUser(Integer.valueOf(value));
        return user;
       }else{
        throw new ConverterException(new FacesMessage(String.format("Cannot convert %s to User", value)));

       }
    }

    @Override
    public String getAsString(FacesContext context, UIComponent component, Object value) {
        return String.valueOf(((IUser) value).getUserid());
    }

}
return  (IUser) query.getResultList();