Java Springboot JPA将具有额外属性的对象映射到非实体类

Java Springboot JPA将具有额外属性的对象映射到非实体类,java,spring,hibernate,spring-boot,jpa,Java,Spring,Hibernate,Spring Boot,Jpa,我希望实体中有一个字段不是持久的,我不希望数据库中有一列,因为它的值取决于当前请求。此字段将存储实体位置到给定任意位置的距离。我想按结果中列出的最大距离过滤结果,以便在请求期间计算此距离字段的值 我的问题是,通过使用@Transient注释,我可以使数据库忽略该列,因此我们不会创建该列,但注释使JPA完全忽略该字段,因此我的本机查询无法用计算值填充该字段。过滤在请求中起作用,我正在使用POSTGRESQL @Query(value = " SELECT * FROM ( SELECT * , (

我希望实体中有一个字段不是持久的,我不希望数据库中有一列,因为它的值取决于当前请求。此字段将存储实体位置到给定任意位置的距离。我想按结果中列出的最大距离过滤结果,以便在请求期间计算此距离字段的值

我的问题是,通过使用@Transient注释,我可以使数据库忽略该列,因此我们不会创建该列,但注释使JPA完全忽略该字段,因此我的本机查询无法用计算值填充该字段。过滤在请求中起作用,我正在使用POSTGRESQL

@Query(value = " SELECT * FROM ( SELECT * , ( 6371 * acos( cos( radians(?1) ) * cos( radians( latitude ) ) * cos( radians( longitude ) - radians(?2) ) + sin( radians(?1) ) * sin( radians( latitude ) ) ) ) AS distance FROM health_center GROUP BY id) ss WHERE distance < ?3 ORDER BY distance LIMIT ?4", nativeQuery = true)
    List<HealthCenter> findByWithinRange(Float latitude, Float longitude, Integer distance, Integer limit);

你有没有考虑过用@ColumnUpdateable=false,insertable=false,…?是的,我试过,但不起作用。你有没有考虑过用@ColumnUpdateable=false,insertable=false,…?是的,我试过,但不起作用。