如何将特殊选择从sql语句转换为条件API

吕肯·H·费伊(Lycann H.Faye)

今天,我现有的sql语句有问题。我想将它与TomEE(Tomcat + Java EE)一起使用,并按标准写下来。

我在SQL中有以下选择:

SELECT
 dest.zc_zip as zip,
 dest.zc_location_name as locname,
 ACOS(
        SIN(RADIANS(src.zc_lat)) * SIN(RADIANS(dest.zc_lat)) 
        + COS(RADIANS(src.zc_lat)) * COS(RADIANS(dest.zc_lat))
        * COS(RADIANS(src.zc_lon) - RADIANS(dest.zc_lon))
    ) * 6371 as distance

我做了什么?对于前2个选择没有问题,但是对于最后一个选择,我不知道如何实现:

@PersistenceUnit(unitName="umkreissuche-jpa")
private EntityManagerFactory emf = null;
private EntityManager em = null;
..
em = emf.createEntityManager();
// getting criteria builder
CriteriaBuilder cb = em.getCriteriaBuilder();
// setting ZCCoordinate model as main profile
CriteriaQuery<ZCCoordinate> cq = cb.createQuery(ZCCoordinate.class);
// setting from
Root<ZCCoordinate> dest = cq.from(ZCCoordinate.class);
// setting inner join
Join<ZCCoordinate, ZCCoordinate> src = dest.join("zcId", JoinType.INNER);
// setting selects
cq.multiselect(dest.get("zcZip").alias("zip"), dest.get("zcLocationName").alias("locname"), ???);

这是我的ZCCoordinate模型:

package de.circlesearch.model;

import java.io.Serializable;

import javax.persistence.*;


/**
 * The persistent class for the zc_coordinates database table.
 * 
 */
@Entity
@Table(name="zc_coordinates")
@NamedQuery(name="ZCCoordinate.findAll", query="SELECT z FROM ZCCoordinate z")
public class ZCCoordinate implements Serializable {
    private static final long serialVersionUID = 1L;

    @Id
    @GeneratedValue(strategy=GenerationType.AUTO)
    @Column(name="zc_id", unique=true, nullable=false)
    private int zcId;

    @Column(name="zc_lat", nullable=false)
    private double zcLat;

    @Column(name="zc_loc_id", nullable=false)
    private int zcLocId;

    @Column(name="zc_location_name", nullable=false, length=255)
    private String zcLocationName;

    @Column(name="zc_lon", nullable=false)
    private double zcLon;

    @Column(name="zc_zip", nullable=false, length=10)
    private String zcZip;

    public ZCCoordinate() {
    }

    public int getZcId() {
        return this.zcId;
    }

    public void setZcId(int zcId) {
        this.zcId = zcId;
    }

    public double getZcLat() {
        return this.zcLat;
    }

    public void setZcLat(double zcLat) {
        this.zcLat = zcLat;
    }

    public int getZcLocId() {
        return this.zcLocId;
    }

    public void setZcLocId(int zcLocId) {
        this.zcLocId = zcLocId;
    }

    public String getZcLocationName() {
        return this.zcLocationName;
    }

    public void setZcLocationName(String zcLocationName) {
        this.zcLocationName = zcLocationName;
    }

    public double getZcLon() {
        return this.zcLon;
    }

    public void setZcLon(double zcLon) {
        this.zcLon = zcLon;
    }

    public String getZcZip() {
        return this.zcZip;
    }

    public void setZcZip(String zcZip) {
        this.zcZip = zcZip;
    }

    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + zcId;
        return result;
    }

    @Override
    public boolean equals(Object obj) {
        if (this == obj) {
            return true;
        }
        if (obj == null) {
            return false;
        }
        if (!(obj instanceof ZCCoordinate)) {
            return false;
        }
        ZCCoordinate other = (ZCCoordinate) obj;
        if (zcId != other.zcId) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "ZCCoordinate [zcId=" + zcId + ", zcLat=" + zcLat + ", zcLocId="
                + zcLocId + ", zcLocationName=" + zcLocationName + ", zcLon="
                + zcLon + ", zcZip=" + zcZip + "]";
    }

}
吕肯·H·费伊(Lycann H.Faye)

这个问题在我这边无法解决。在选择路径上转换三角函数会带来很多问题。本机SQL语句无济于事,因为JPQL也不支持三角函数。

我使用JDBC驱动程序并直接执行sql语句。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将选择语句转换为更新语句

来自分类Dev

如何将这个选择语句转换为存储过程?

来自分类Dev

如何将谓词转换为SQL语句?

来自分类Dev

如何将SQL语句从表转换为活动查询

来自分类Dev

如何将LENGTH()条件转换为xPDO的SQL?

来自分类Dev

如何将SQL转换为Mongoose查询API

来自分类Dev

如何将选择语句结果转换为JSONARRAY并更新另一个表

来自分类Dev

如何将这些If else语句转换为Switch语句

来自分类Dev

如何将Unicode特殊字符转换为html实体?

来自分类Dev

如何将Unicode特殊字符转换为html实体?

来自分类Dev

如何将SQL转换为Linq

来自分类Dev

如何将LINQ嵌套的Selectmany转换为SQL正则语句

来自分类Dev

如何将SQL语句转换为正确的SQLAlchemy表达式

来自分类Dev

如何将SQL(多对多关系)转换为Linq语句

来自分类Dev

将SQL语句转换为休眠条件或投影

来自分类Dev

如何将IL转换为Emit语句?

来自分类Dev

如何将MySQL语句转换为数值?

来自分类Dev

如何将IL转换为Emit语句?

来自分类Dev

如何将数据从 WITH 语句转换为集合?

来自分类Dev

如何将这些“if”语句转换为算法

来自分类Dev

如何将 SELECT 语句转换为 Eloquent?

来自分类Dev

如何将此SQL查询转换为Active Record语句?

来自分类Dev

如何将此SQL语句转换为PostgreSQL?

来自分类Dev

如何将我的SQL语句转换为Doctrine QueryBuilder?

来自分类Dev

如何将此SQL语句转换为PostgreSQL?

来自分类Dev

如何将此 SQL 查询转换为 Django ORM 语句?

来自分类Dev

如何将十进制价格转换为str并选择所有以.99结尾的sql?

来自分类Dev

如何将十进制价格转换为str并选择所有以.99结尾的sql?

来自分类Dev

如何将条件语句转换为简单表达式?以这种方式复利是否可以接受?

Related 相关文章

  1. 1

    如何将选择语句转换为更新语句

  2. 2

    如何将这个选择语句转换为存储过程?

  3. 3

    如何将谓词转换为SQL语句?

  4. 4

    如何将SQL语句从表转换为活动查询

  5. 5

    如何将LENGTH()条件转换为xPDO的SQL?

  6. 6

    如何将SQL转换为Mongoose查询API

  7. 7

    如何将选择语句结果转换为JSONARRAY并更新另一个表

  8. 8

    如何将这些If else语句转换为Switch语句

  9. 9

    如何将Unicode特殊字符转换为html实体?

  10. 10

    如何将Unicode特殊字符转换为html实体?

  11. 11

    如何将SQL转换为Linq

  12. 12

    如何将LINQ嵌套的Selectmany转换为SQL正则语句

  13. 13

    如何将SQL语句转换为正确的SQLAlchemy表达式

  14. 14

    如何将SQL(多对多关系)转换为Linq语句

  15. 15

    将SQL语句转换为休眠条件或投影

  16. 16

    如何将IL转换为Emit语句?

  17. 17

    如何将MySQL语句转换为数值?

  18. 18

    如何将IL转换为Emit语句?

  19. 19

    如何将数据从 WITH 语句转换为集合?

  20. 20

    如何将这些“if”语句转换为算法

  21. 21

    如何将 SELECT 语句转换为 Eloquent?

  22. 22

    如何将此SQL查询转换为Active Record语句?

  23. 23

    如何将此SQL语句转换为PostgreSQL?

  24. 24

    如何将我的SQL语句转换为Doctrine QueryBuilder?

  25. 25

    如何将此SQL语句转换为PostgreSQL?

  26. 26

    如何将此 SQL 查询转换为 Django ORM 语句?

  27. 27

    如何将十进制价格转换为str并选择所有以.99结尾的sql?

  28. 28

    如何将十进制价格转换为str并选择所有以.99结尾的sql?

  29. 29

    如何将条件语句转换为简单表达式?以这种方式复利是否可以接受?

热门标签

归档