0

你能帮我写下面的代码吗?我正在查询 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());
          }

你知道什么会导致这种行为吗?这可能很愚蠢,但我找不到解决方案。谢谢

我的对象代码:

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;
    }



}
4

2 回答 2

0

请使用以下行以避免重复对象

criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);
于 2013-01-19T07:39:17.877 回答
0

我已经设法解决了这个问题。实际上 MyObject 实例变量与我的表列名称不对应。谢谢!

于 2013-01-21T09:50:51.800 回答