Ola a todos,
Tenho tres classes: Collaborator, City e EmailCollaborator, a classe email colaborator se relacioana com as classes Collaborator e City;
@Entity
@Table(name="email_collaborator")
@SequenceGenerator(name="email_collaborator_id_seq", sequenceName="email_collaborator_id_seq")
public class EmailCollaborator {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "email_collaborator_id_seq")
private Integer id;
@ManyToOne
@JoinColumn(name="login")
private Collaborator collaborator;
@ManyToOne
@JoinColumn(name="symbol")
private City symbol;
public EmailCollaborator(Integer id, Collaborator collaborator, City symbol) {
this.id = id;
this.collaborator = collaborator;
this.symbol = symbol;
}
public EmailCollaborator() {
}
public Collaborator getCollaborator() {
return collaborator;
}
public void setCollaborator(Collaborator collaborator) {
this.collaborator = collaborator;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public City getSymbol() {
return symbol;
}
public void setSymbol(City symbol) {
this.symbol = symbol;
}
}
ackage br.com.model;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
/**
*
* @author G0004830
*/
@Entity
public class City {
@Id
private String symbol;
@Column(nullable=true)
private String name;
public City(String symbol) {
this.symbol = symbol;
}
public City(String symbol, String name) {
this.symbol = symbol;
this.name = name;
}
public City() {
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSymbol() {
return symbol;
}
public void setSymbol(String symbol) {
this.symbol = symbol;
}
}
package br.com.model;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
/**
*
* @author G0004830
*/
@Entity
public class Collaborator {
@Id
private String login;
@Column(length=200, nullable=true)
private String name;
@Column(length=200, nullable=true)
private String email;
public Collaborator() {
}
public Collaborator(String login) {
this.login = login;
}
public Collaborator(String login, String name, String email) {
this.login = login;
this.name = name;
this.email = email;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getLogin() {
return login;
}
public void setLogin(String login) {
this.login = login;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
Preciso entao fazer uma pesquisa por Colaborador na Classe EmailCollaborador, criei um Dao onde está o codigo abaixo:
package br.com.dao;
import br.com.model.EmailCollaborator;
import java.util.List;
import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.criterion.Expression;
import org.hibernate.criterion.MatchMode;
/**
*
* @author paulo
*/
public class DaoEmailCollaborator {
private Dao<EmailCollaborator> daoGeneric;
private Session session;
public Dao<EmailCollaborator> getDaoGeneric() {
return daoGeneric;
}
public DaoEmailCollaborator(Session session) {
this.daoGeneric = new Dao<EmailCollaborator>(session, EmailCollaborator.class);
this.session = session;
}
public List<EmailCollaborator> getListCitysByCollaborator(String login){
Criteria criteria = this.session.createCriteria(EmailCollaborator.class);
criteria.add(Expression.ilike("login", login, MatchMode.EXACT));
return criteria.list();
}
}
Quando executo a minha aplicação recebo o seguinte erro:
Exception in thread "main" org.hibernate.QueryException: could not resolve property: login of: br.com.model.EmailCollaborator
at org.hibernate.persister.entity.AbstractPropertyMapping.propertyException(AbstractPropertyMapping.java:44)
at org.hibernate.persister.entity.AbstractPropertyMapping.toType(AbstractPropertyMapping.java:38)
at org.hibernate.persister.entity.AbstractEntityPersister.getSubclassPropertyTableNumber(AbstractEntityPersister.java:1375)
at org.hibernate.persister.entity.BasicEntityPropertyMapping.toColumns(BasicEntityPropertyMapping.java:31)
at org.hibernate.persister.entity.AbstractEntityPersister.toColumns(AbstractEntityPersister.java:1350)
at org.hibernate.loader.criteria.CriteriaQueryTranslator.getColumns(CriteriaQueryTranslator.java:434)
at org.hibernate.loader.criteria.CriteriaQueryTranslator.getColumnsUsingProjection(CriteriaQueryTranslator.java:394)
at org.hibernate.criterion.IlikeExpression.toSqlString(IlikeExpression.java:32)
at org.hibernate.loader.criteria.CriteriaQueryTranslator.getWhereCondition(CriteriaQueryTranslator.java:334)
at org.hibernate.loader.criteria.CriteriaJoinWalker.<init>(CriteriaJoinWalker.java:82)
at org.hibernate.loader.criteria.CriteriaLoader.<init>(CriteriaLoader.java:67)
at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1550)
at org.hibernate.impl.CriteriaImpl.list(CriteriaImpl.java:283)
at br.com.dao.DaoEmailCollaborator.getListCitysByCollaborator(DaoEmailCollaborator.java:36)
at br.com.gvt.seaccess.email.Email.sendEmailByCollaborator(Email.java:49)
at sendemailelement.Main.main(Main.java:61)
Java Result: 1
Alguem sabe o que pode estar acontecendo?
Att,
Paulo