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

何がこの動作を引き起こす可能性があるか知っていますか? それはおそらく愚かなことですが、私は解決策を見つけることができません。ありがとう

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



}
4

2 に答える 2

0

オブジェクトの重複を避けるために、次の行を使用してください

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

私は問題を解決することができました。実際、MyObject インスタンス変数はテーブルの列名に対応していませんでした。ありがとう!

于 2013-01-21T09:50:51.800 に答える