this.partService.query({ 'item.deleted.specified': false, // 修改为 item.deleted 字段 'page': pageToLoad - 1, 'size': this.itemsPerPage, 'sort': this.sort() })这么写还是不好用
时间: 2023-12-31 20:04:42 浏览: 26
如果您按照上述方式修改代码后仍然无法正常工作,可能是因为 Hibernate 中的关联查询语法需要特殊处理。您可以尝试使用 Hibernate 的 `Criteria` 或 `HQL` 查询语句来实现此功能。
以下是使用 `Criteria` 查询的示例代码:
```java
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(Part.class, "part");
criteria.createAlias("part.item", "item"); // 关联 item 表
criteria.add(Restrictions.eq("item.deleted", false)); // 添加查询条件
List<Part> parts = criteria.list();
```
这段代码中,通过 `createAlias` 方法关联了 `part` 表和 `item` 表,然后使用 `add` 方法添加了 `item.deleted = false` 的查询条件。最后使用 `list` 方法执行查询并返回查询结果。
如果您想使用 `HQL` 查询语句,可以尝试以下代码:
```java
String hql = "from Part p where p.item.deleted = false";
List<Part> parts = sessionFactory.getCurrentSession().createQuery(hql).list();
```
这段代码中,使用 `from` 关键字指定了要查询的实体类,然后通过 `p.item.deleted` 来访问关联的 `item` 表中的 `deleted` 字段,并添加了查询条件。最后使用 `list` 方法执行查询并返回查询结果。
请注意,以上示例代码中的 `sessionFactory` 是 Hibernate 的 `SessionFactory` 对象,您需要根据实际情况进行修改。