Ola a todos,
Vejam tenho duas classes que se relacionam.
Shelf e ShelfModel
/**
*
* @author Paulo Henrique Peres <[email removido]>
*/
@Entity
@Table(name="SHELF_MODEL")
public class ShelfModel implements Serializable {
@Id()
@Column(name="NAME")
private String name;
@Column(name="MANUFACTURER", nullable=false)
private String manufacturer;
@OneToMany(mappedBy = "shelfModel", fetch=FetchType.LAZY)
private List<Shelf> shelves = new ArrayList<Shelf>();
public ShelfModel() {
}
public ShelfModel(String name) {
this.name = name;
}
public ShelfModel(String name, String manufacturer) {
this.name = name;
this.manufacturer = manufacturer;
}
public String getManufacturer() {
return manufacturer;
}
public void setManufacturer(String manufacturer) {
this.manufacturer = manufacturer;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public List<Shelf> getShelves() {
return shelves;
}
public void setShelves(List<Shelf> shelves) {
this.shelves = shelves;
}
}
/**
*
* @author Paulo Henrique Peres <[email removido]>
*/
@Entity
@Table(name="SHELF")
public class Shelf implements Serializable {
@Id()
@Column(name="IP")
private String ip;
@Column(name="NAME")
private String name;
@ManyToOne()
private City city;
@ManyToOne
private ShelfModel shelfModel;
public Shelf() {
}
public Shelf(String ip) {
this.ip = ip;
}
public City getCity() {
return city;
}
public void setCity(City city) {
this.city = city;
}
public String getIp() {
return ip;
}
public void setIp(String ip) {
this.ip = ip;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public ShelfModel getShelfModel() {
return shelfModel;
}
public void setShelfModel(ShelfModel shelfModel) {
this.shelfModel = shelfModel;
}
@Override
public boolean equals(Object obj) {
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
final Shelf other = (Shelf) obj;
if ((this.ip == null) ? (other.ip != null) : !this.ip.equals(other.ip)) {
return false;
}
return true;
}
Tenho em um dao um método que recupera um shelfModel pelo nome.
public ShelfModel getModelShelfByName(String model) {
Criteria criteria = this.session.createCriteria(Shelf.class);
criteria.add(Expression.ilike("name", model, MatchMode.EXACT));
return (ShelfModel) criteria.uniqueResult();
}
Quando tento fazer a consulta o resultado sempre vem nulo, faco a mesma consulta diretamente no banco e o resultados aparecem.
Tentei também assim, mas o resultado, ou seja, o numero de shelves vem como 0.
ShelfModel shelfModel = new ShelfModel("MILEGATE2500");
System.out.println(shelfModel.getShelves().size());
alguem sabe o que pode estar acontecendo?