Hibernate Spring数据或带有动态计算列的普通JPA
伙计们。 我有一些商店对象,它们有坐标(纬度和经度)。我想公开用户当前位置和店铺之间的距离。问题是这个字段是动态的,我不能用商店实体中的常规字段表示值。如果我放这样的东西Hibernate Spring数据或带有动态计算列的普通JPA,hibernate,jpa,spring-data,jdbctemplate,criteria-api,Hibernate,Jpa,Spring Data,Jdbctemplate,Criteria Api,伙计们。 我有一些商店对象,它们有坐标(纬度和经度)。我想公开用户当前位置和店铺之间的距离。问题是这个字段是动态的,我不能用商店实体中的常规字段表示值。如果我放这样的东西 @Transient private BigDecimal distance; Spring数据无法映射此属性,因为它已被忽略。 我可以使用jdbcTemplate和原始查询,但编码太多:) 所以基本上,我的问题是如何将动态计算的加法列映射到没有持久性属性的JPA实体 致以最诚挚的问候。您可以使用: 1) 用于在应用程序级别
@Transient
private BigDecimal distance;
Spring数据无法映射此属性,因为它已被忽略。
我可以使用jdbcTemplate和原始查询,但编码太多:)
所以基本上,我的问题是如何将动态计算的加法列映射到没有持久性属性的JPA实体
致以最诚挚的问候。您可以使用:
1) 用于在应用程序级别自定义计算瞬态特性的注释:
@PostLoad
public void calculateDistance() {
this.distance = ...;
}
2) 在数据库级别进行计算的注释(使用本机SQL方言):
(@Transient
注释在此情况下必须排除。)您可以使用:
1) 用于在应用程序级别自定义计算瞬态特性的注释:
@PostLoad
public void calculateDistance() {
this.distance = ...;
}
2) 在数据库级别进行计算的注释(使用本机SQL方言):
(
@Transient
注释在这种情况下必须排除。)我可以将@Formula与preparedStatemens一起使用吗?@Rostislav No.@Formula
在数据库级别工作-它是本机sql语句的一部分(请参阅我提供的链接)是的,我看到了。。因此,在这种情况下,上述方法中的任何内容都不会起作用。。。查询已准备好语句和自对象字段(列)引用。我想我应该使用jdbcTemplate…@Rostislav你的问题是:“如何将动态计算的加法列映射到没有持久属性的JPA实体?”-我回答了。你说得对,我的朋友。我会将您的答案标记为解决方案我可以使用@Formula和preparedStatemens吗?@Rostislav No.@Formula
在数据库级别工作-它是本机sql语句的一部分(请参阅我提供的链接)是的,我看到了。。因此,在这种情况下,上述方法中的任何内容都不会起作用。。。查询已准备好语句和自对象字段(列)引用。我想我应该使用jdbcTemplate…@Rostislav你的问题是:“如何将动态计算的加法列映射到没有持久属性的JPA实体?”-我回答了。你说得对,我的朋友。我将把你的答案记为解决办法