0

次の 2 つのテーブルがあります。アイテム: item_id、名前

ItemInfo: id、item_id、info_id、item_info

Item テーブルは、ItemInfo に複数のエントリを持つことができます。

上記の 2 つのテーブルに同時に参加したいのですが、ItemInfo に関連するエントリがない可能性がある Item テーブルからエントリを取得したいと考えています。Hibernate基準でこれを達成するにはどうすればよいですか?

public class Item {
    private long item_id;
    private String name;

    public long getItem_id() {
        return item_id;
    }

    public void setItem_id(long item_id) {
        this.item_id = item_id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

public class ItemInfo {
    private long id;
    private long item_id;
    private String item_info;

    public long getId() {
        return id;
    }

    public void setId(long id) {
        this.id = id;
    }

    public long getItem_id() {
        return item_id;
    }

    public void setItem_id(long item_id) {
        this.item_id = item_id;
    }   


    public String getItem_info() {
        return item_info;
    }

    public void setItem_info(String item_info) {
        this.item_info = item_info;
    }
}
4

1 に答える 1

1

まず、POJO を修正させてください。

public class ItemInfo {
  private long id;
  private Item item_id;
  private long info_id;
  private String item_info;

 //getter-setter of all
} 

item_id のデータ型の変更を探します。それに応じて注釈/マッピング ファイルを変更します。

次に、次の基準を実行してみてください。

Criteria crit = session.createCriteria(Item.class);
crit.setFetchMode("item_id", FetchMode.JOIN);
List<Item> itemList = criteria.list();
于 2013-08-24T11:49:30.853 に答える