Jpa 查询多通字段

Jpa 查询多通字段,jpa,eclipselink,Jpa,Eclipselink,我在mysql中有一个自反字段(是的,外键指向同一个表的字段) 这是一个产品,外键必须告诉我该产品是否是包的一部分(这是一个设计决策) 这个运行得很好 Query paquetesQuery = EclipseLinkUtil.getEntityManagerFactory().createQuery("SELECT e FROM " + "Productos e WHERE e.productosidProductos IS NOT NULL"); 但是我需要这个

我在mysql中有一个自反字段(是的,外键指向同一个表的字段)

这是一个产品,外键必须告诉我该产品是否是包的一部分(这是一个设计决策)

这个运行得很好

 Query paquetesQuery = EclipseLinkUtil.getEntityManagerFactory().createQuery("SELECT e FROM  "
            + "Productos e WHERE e.productosidProductos IS NOT NULL");
但是我需要这个,其中e.productosidProductos>0,因为当产品不是组的一部分时,它将是0。
多谢各位

你不能用Java写这个,是吗

Productos product =  new Productos(...);
if (product > 0)
不,你不能,因为产品就是产品。这不是一个数字。因此,将产品与0进行比较毫无意义。但您在查询中这样做:

WHERE p2.productosidProductos > 0
其中
productosidProductos
属性的类型为
Productos
。如果要将产品ID(一个整数)与0进行比较,则可以:

WHERE p2.productosidProductos.id > 0

哦,我的上帝!非常感谢,如果我看不见这个,我就瞎了!我相信p2.productosidProductos只是一个属性而不是一个实体,但是错误告诉我们类型不正确!
WHERE p2.productosidProductos > 0
WHERE p2.productosidProductos.id > 0