Pow estou iniciando no Hibernate e ele está retornando o seguinte erro:
org.hibernate.AnnotationException: @OneToOne or @ManyToOne on model.Usuarios.unidadesId references an unknown entity: model.Unidades
org.hibernate.cfg.ToOneFkSecondPass.doSecondPass(ToOneFkSecondPass.java:81)
org.hibernate.cfg.AnnotationConfiguration.processEndOfQueue(AnnotationConfiguration.java:456)
org.hibernate.cfg.AnnotationConfiguration.processFkSecondPassInOrder(AnnotationConfiguration.java:438)
org.hibernate.cfg.AnnotationConfiguration.secondPassCompile(AnnotationConfiguration.java:309)
org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1319)
org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:867)
model.HibernateUtility.getSessionFactory(HibernateUtility.java:25)
model.DaoUsuarios.
control.loginServlet.processRequest(loginServlet.java:36)
control.loginServlet.doGet(loginServlet.java:55)
javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)
Aqui estão minhas classes:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package model;
import java.io.Serializable;
import java.util.Date;
import javax.persistence.Basic;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
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;
@Entity
@Table(name = "usuarios", catalog = "church", schema = "")
@NamedQueries({@NamedQuery(name = "Usuarios.findAll", query = "SELECT u FROM Usuarios u"), @NamedQuery(name = "Usuarios.findById", query = "SELECT u FROM Usuarios u WHERE u.id = :id"), @NamedQuery(name = "Usuarios.findByNome", query = "SELECT u FROM Usuarios u WHERE u.nome = :nome"), @NamedQuery(name = "Usuarios.findByUsuario", query = "SELECT u FROM Usuarios u WHERE u.usuario = :usuario"), @NamedQuery(name = "Usuarios.findBySenha", query = "SELECT u FROM Usuarios u WHERE u.senha = :senha"), @NamedQuery(name = "Usuarios.findByDtreg", query = "SELECT u FROM Usuarios u WHERE u.dtreg = :dtreg"), @NamedQuery(name = "Usuarios.findByPerfilUsuariosid", query = "SELECT u FROM Usuarios u WHERE u.perfilUsuariosid = :perfilUsuariosid")})
public class Usuarios implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Column(name = "id")
private Integer id;
@Basic(optional = false)
@Column(name = "nome")
private String nome;
@Basic(optional = false)
@Column(name = "usuario")
private String usuario;
@Column(name = "senha")
private String senha;
@Basic(optional = false)
@Column(name = "dtreg")
@Temporal(TemporalType.DATE)
private Date dtreg;
@Basic(optional = false)
@Column(name = "perfil_usuariosid")
private int perfilUsuariosid;
@JoinColumn(name = "unidadesId", referencedColumnName = "id")
@ManyToOne
private Unidades unidadesId;
public Usuarios() {
}
public Usuarios(Integer id) {
this.id = id;
}
public Usuarios(Integer id, String nome, String usuario, Date dtreg, int perfilUsuariosid) {
this.id = id;
this.nome = nome;
this.usuario = usuario;
this.dtreg = dtreg;
this.perfilUsuariosid = perfilUsuariosid;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getUsuario() {
return usuario;
}
public void setUsuario(String usuario) {
this.usuario = usuario;
}
public String getSenha() {
return senha;
}
public void setSenha(String senha) {
this.senha = senha;
}
public Date getDtreg() {
return dtreg;
}
public void setDtreg(Date dtreg) {
this.dtreg = dtreg;
}
public int getPerfilUsuariosid() {
return perfilUsuariosid;
}
public void setPerfilUsuariosid(int perfilUsuariosid) {
this.perfilUsuariosid = perfilUsuariosid;
}
public Unidades getUnidadesId() {
return unidadesId;
}
public void setUnidadesId(Unidades unidadesId) {
this.unidadesId = unidadesId;
}
@Override
public int hashCode() {
int hash = 0;
hash += (id != null ? id.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 Usuarios)) {
return false;
}
Usuarios other = (Usuarios) object;
if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) {
return false;
}
return true;
}
@Override
public String toString() {
return "model.Usuarios[id=" + id + "]";
}
}
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package model;
import java.io.Serializable;
import java.util.Collection;
import java.util.Date;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
@Entity
@Table(name = "unidades", catalog = "church", schema = "")
@NamedQueries({@NamedQuery(name = "Unidades.findAll", query = "SELECT u FROM Unidades u"), @NamedQuery(name = "Unidades.findById", query = "SELECT u FROM Unidades u WHERE u.id = :id"), @NamedQuery(name = "Unidades.findByDescricao", query = "SELECT u FROM Unidades u WHERE u.descricao = :descricao"), @NamedQuery(name = "Unidades.findByDtreg", query = "SELECT u FROM Unidades u WHERE u.dtreg = :dtreg")})
public class Unidades implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Column(name = "id")
private Integer id;
@Column(name = "descricao")
private String descricao;
@Basic(optional = false)
@Column(name = "dtreg")
@Temporal(TemporalType.DATE)
private Date dtreg;
@OneToMany(mappedBy = "unidadesId")
private Collection<Usuarios> usuariosCollection;
public Unidades() {
}
public Unidades(Integer id) {
this.id = id;
}
public Unidades(Integer id, Date dtreg) {
this.id = id;
this.dtreg = dtreg;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getDescricao() {
return descricao;
}
public void setDescricao(String descricao) {
this.descricao = descricao;
}
public Date getDtreg() {
return dtreg;
}
public void setDtreg(Date dtreg) {
this.dtreg = dtreg;
}
public Collection<Usuarios> getUsuariosCollection() {
return usuariosCollection;
}
public void setUsuariosCollection(Collection<Usuarios> usuariosCollection) {
this.usuariosCollection = usuariosCollection;
}
@Override
public int hashCode() {
int hash = 0;
hash += (id != null ? id.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 Unidades)) {
return false;
}
Unidades other = (Unidades) object;
if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) {
return false;
}
return true;
}
@Override
public String toString() {
return "model.Unidades[id=" + id + "]";
}
}
Classe DAOUsuarios
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package model;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;
public class DaoUsuarios {
Session sessao = HibernateUtility.getSessionFactory(Usuarios.class).openSession();
Transaction tx = sessao.beginTransaction();
public Usuarios logar(String usuario, String senha){
Usuarios usuarios=null;
Query q = sessao.createQuery("from usuarios where usuario= :usuario and senha= :senha");
q.setParameter("usuario", usuario);
q.setParameter("senha", senha);
usuarios= (Usuarios) q.uniqueResult();
tx.commit();
sessao.flush();
sessao.close();
return usuarios;
}
}