Tag: left join

如何为超类编写Hibernate Criteria查询,并检查某个子类?

如何为超类编写Hibernate Criteria查询,并检查某个子类? 让我们假设我们有以下所有使用Hibernate-JPA映射的类: @Entity @Inheritance(strategy = InheritanceType.JOINED) public class Bar { @Id @Column(name = “id”) private Long id; } @Entity @PrimaryKeyJoinColumn(name=”bar_id”) public class Foo extends Bar { } @Entity @PrimaryKeyJoinColumn(name=”bar_id”) public class Goo extends Bar { } 在编写像这样的Criteria查询时,为了提高性能,我希望对子类使用左连接: getSession() .createCriteria(Bar.class) .createAlias(“Foo”, “foo”, CriteriaSpecification.LEFT_JOIN) .add(Restrictions.isNotNull(“foo.bar_id”)) .list(); 这失败了,因为关联路径“Foo”显然不起作用,但它会说明我想要的。 或者是否有另一种方法来执行此类查询? 我需要在超类上执行查询。 如果我在SQL中完成它,它将如下所示: select b.* from bar b left […]

两个不同Java对象的“左连接”

我有一个Object1( List )列表和一个Object2 List ( List ) 对象1具有多个属性,包括id 对象2有多个object1id ,包括object1id 我有一些SQL背景,我想要做的是执行“左连接” object1.id = object2.object1id 这将导致List表示左连接。 我可以用Java硬编码算法(for … for …),但我确信这至少在n * m的复杂度下效率不高。 你有更好的解决方案吗? (如果可能,请使用代码,谢谢!)