我们的前端旨在使用Spring的Order发送包含属性名称的Pageable对象。
样本实体:
@Entity
@Table
public class Foo {
private String userName;
@Embedded
private Bar bar;
}
@Embeddable
public class Bar {
private String value;
}
我们在存储库中接收可订阅的订单,并从该可分页对象解析JPA的订单,如下所示:
pageable.getSort().get().forEach(springOrder ->
jpaOrders.add(getBuilder().asc(root.get(springOrder .getProperty())))
);
我们需要这样做,因为我们正在通过条件api构建查询。
当我们收到Foo的存储库属性时,一切都很好,例如“用户名”。但是当我们收到可嵌入实体的属性时,例如“bar.value”我们得到了例外
无法在此ManagedType上找到具有给定名称[bar.value]的Attribute
你能告诉我如何从属性创建JPA的Order对象来定义可嵌入实体的属性吗?谢谢你的建议
对于这些属性路径,您必须使用正确的连接别名和属性路径的最后一部分创建连接并应用Order
。
有关更多详细信息,我建议您查看Spring Data JPA的代码。找到对Order
类的所有引用并开始阅读一些代码。
你尝试过使用org.springframework.data.jpa.repository.query.QueryUtils#toOrders
吗?