Mysql 如何从JPA查询中排除空结果

Mysql 如何从JPA查询中排除空结果,mysql,jakarta-ee,jpa,eclipselink,Mysql,Jakarta Ee,Jpa,Eclipselink,我在JPA中有以下命名查询: <named-query name="getAllListingsWithId"> <query>Select listing from ListedItemDetail listing where listing.listingId in :listingIds</query> </named-query> 我可以在namedQuery中执行此操作吗?我想它会更快 使用MySQL,EclipseLink。谢

我在JPA中有以下命名查询:

<named-query name="getAllListingsWithId">
    <query>Select listing from ListedItemDetail listing where listing.listingId in :listingIds</query>
</named-query>
我可以在namedQuery中执行此操作吗?我想它会更快

使用MySQL,EclipseLink。谢谢

ListedItemDetail:

public class ListedItemDetail extends Item{
    // Fields
}

public class Item{
    protected int listingId;
    // Other fields
}
orm.xml(xml定义的实体):



列出列表ID;你是说
listingIds.size==listsgs.size()
?这没有道理。结果集将只包含与查询匹配的记录。i、 e具有
id
且位于
listingid
中的记录。另外,您没有显示的是“GetAllListingswithIdeExcludeNulls”查询。您好,我已经进行了编辑,以便更清楚一些。对于数据库中不存在的每个listingId(主键没有行),它会在列表中创建一个空元素(如问题中的注释所示-清单46不存在)。您可以发布
ListedItemDetail
实体的代码吗?另外,请发布生成的SQL.GetAllListingsWithIdeExcludeNulls是我做的一个测试,但没有工作,这是一个复制粘贴错误。对不起,我已将其更改为原来的状态。
listings.removeAll(Collections.singleton(null));  
public class ListedItemDetail extends Item{
    // Fields
}

public class Item{
    protected int listingId;
    // Other fields
}
<entity class="package.Item">
    <attributes>
        <id name="listingId">
        </id>
    </attributes>
</entity>