休眠:与许多标准

考虑以下两种关系:

@Entity class Foo {
    @Id id;

    @ManyToMany
    @JoinTable(name = "ATag", 
         joinColumns = @JoinColumn(name = "foo_id"),
         inverseJoinColumns = @JoinColumn(name = "tag_id"))
    Set<Tag> tags;
}

@Entity class Tag {
    @Id Long id;
    String name;
}

连接表ATag没有相应的实体类。 现在,我想要使用标签名为'tag1'的所有Foo实例,是否可以只使用Criteria?

子查询可能是有帮助的,但是,我不能为类ATag.class创建不存在的DetachedCriteria。


刚刚处理这个确切的问题。 你在考虑表格,而不是对象。 只需引用tags.name ,让Hibernate处理剩下的tags.name

Criteria crit = session.createCriteria(Foo.class);
crit.createAlias("tags", "tagsAlias");
crit.add(Restrictions.eq("tagsAlias.name", someValue);

如果你看到SQL Hibernate吐出来了,你会看到它使用了连接表。

链接地址: http://www.djcxy.com/p/37049.html

上一篇: Hibernate: Criteria with many

下一篇: Hibernate: updating associated objects