Mysql 如何从JPA查询中排除空结果
我在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。谢
<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>