Hibernate createCriteria list() возвращает идентичные объекты
Можете ли вы помочь мне с кодом ниже. Я запрашиваю Hibernate, и количество возвращаемых объектов в списке соответствует количеству строк в моей таблице. Но похоже, что каждый объект в списке идентичен. Действительно, следующая строка печатает одного и того же пользователя, тогда как в таблице другое.
System.out.println("p"+mo.getUser());
вот мой код
List<MyObject> lp = (List<MyObject>) sessionFactory.getCurrentSession().createCriteria(MyObject.class).list();
for (MyObject mo: lp) {
System.out.println("p"+mo.getUser());
}
Знаете ли вы, что может вызвать такое поведение? Возможно, это что-то глупое, но я не могу найти решение. Спасибо
Код MyObject:
package soc.entities;
import java.math.BigDecimal;
import java.util.Date;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Column;
/**
* Part generated by hbm2java
*/
@Entity
@Table(name="Part")
public class MyObcejet {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private Integer id;
@Column
private String user
public Part() {
}
public Integer getId() {
return this.id;
}
public void setId(Integer id) {
this.id = id;
}
public String getUser() {
return this.user;
}
public void setUser(String user) {
this.user = user;
}
}
2 ответа
Пожалуйста, используйте следующую строку, чтобы избежать дублирования объектов
criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);
Мне удалось решить проблему. На самом деле переменные экземпляра MyObject не соответствуют именам столбцов моей таблицы. Спасибо!