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 не соответствуют именам столбцов моей таблицы. Спасибо!

Другие вопросы по тегам