当前位置: 首页 > 知识库问答 >
问题:

对象中带有null参数的Hql构造函数查询

邴墨竹
2023-03-14

我试图连接2个表,并通过构造函数查询将结果添加到一个新对象。并非左表中的所有ID都在右表中。因此,通过外部联接,我希望从左表中获得所有结果,并从右表中获得结果,如果没有结果,则为null值。

我如何解决这个问题,是否可以让第二个参数是可选的?因为参数二是一个对象,这将自动html" target="_blank">解析为空值,解决了我的问题。

我在pgadmin中重新创建了查询,并得到了预期的结果。通过移除左边的外部联接(以及object中的第二个参数),查询返回我所期望的所有记录。

剥离后的查询

SELECT new  x.x.x.PersonWithPartner(p, relation.related)
FROM Person p
LEFT OUTER JOIN p.relation relation

X.X.X.PersonWithPartner对象

@Getter
@Setter
@Entity
public class PersonWithPartner {
    private Person person;
    private Person partner;

    public NatuurlijkPersoonWithPartner(Person person, Person partner) {
        this.person = person;
        this.partner = partner;
    }

我希望每个记录都有一个对象,第一个参数总是填充的,第二个参数要么是联接找到的对象,要么是空的。

共有1个答案

萧阳波
2023-03-14

试试这个:

SELECT new  x.x.x.PersonWithPartner(p, related)
FROM Person p
LEFT OUTER JOIN p.relation relation
LEFT OUTER JOIN relation.related related

我不知道这是否管用。但可能relation.relation创建了一个隐式内部联接。

 类似资料:
  • 对于我的Java应用程序,我尝试使用ScalaCheck编写一些基于属性的单元测试。为此,我需要生成器,但我能找到的所有教程都使用带有参数的构造函数来生成对象。我需要生成的对象没有构造函数参数,我无法添加这样的构造函数,因为它来自外部库。 我现在有以下内容(Jwt声明来自软件包组织.jose4j.jwt): 关于如何编写我的生成器,有什么建议吗?我对Scala一无所知,所以如果我犯了一个“明显”的

  • 我有以下课程布局: 我正在为服务创建一个单元测试,但我想将ServiceHelper用作一个“活动”类,但要模拟ServiceHelper中的构造函数参数。有没有办法通过Mockito实现这一点?

  • 问题内容: 如果您有一个可以接受某些参数但不允许使用任何参数的类,则最佳做法是什么? 以下内容显而易见,但有一点例外: 在这里,异常使您知道哪个参数为空,但是构造函数现在很丑陋: 这里的构造函数比较整洁,但是现在构造函数代码实际上不在构造函数中: 以下哪种风格最好? 还是有一个更广泛接受的替代方案? 问题答案: 第二或第三。 因为它告诉您API的用户到底出了什么问题。 对于较低的冗长程度,请使用c

  • 我使用的是jdk8,需要创建一个以类名作为构造函数参数的Spring组件。但是,使用我当前的代码,我遇到了运行时错误: 这是我的博客类: 这就是我尝试创建类的方式: 我可以了解一下创建该组件的正确方法/这里出了什么问题吗?提前感谢。

  • 我有以下代码: 我不希望字段ui有一个getter,但是kotlin在默认情况下会生成它,因为它是构造函数中定义的val。 在properties and fields文档中,我发现我可以用以下代码生成一个私有getter 但我在构造函数定义中找不到这样做的方法

  • 问题内容: 我想在 Spring Java配置中 创建一个Spring bean,并在运行时传递一些构造函数参数。我创建了以下Java配置,其中有一个bean fixedLengthReport ,它在构造函数中需要一些参数。 但是我收到错误消息, 表明 未找到bean 导致 sourceSystem 无法连接。如何使用运行时构造函数参数创建bean? 我正在使用Spring 4.2 问题答案: