Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hibernate Spring数据或带有动态计算列的普通JPA_Hibernate_Jpa_Spring Data_Jdbctemplate_Criteria Api - Fatal编程技术网

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实体?”-我回答了。你说得对,我的朋友。我将把你的答案记为解决办法