java - 将 PostgreSQL Query 转换为对应的 Hibernate Query

标签 java postgresql hibernate jpa jakarta-ee

我需要为 PostgreSQL 查询提供相应的 Hibernate 查询。

这里是查询

select DATE(row_created) from DemoTable

其中 DATE 是 PostgreSQL 中的内置函数,row_createdDemoTable 中的列,数据类型为 timestamp without time zone.

这是我的 POJO 类

import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Transient;
import javax.validation.constraints.NotNull;
@Entity
@Table(name = "candidate")
public class Candidates { 
    @Id
    @Column(name = "id")
    @GeneratedValue(strategy = GenerationType.AUTO)
    private int candidateId;

    @NotNull
    @Column(name = "name")
    private String name;

    @NotNull
    @Column(name = "mail_id")
    private String mailId;

    @NotNull
    @Column(name = "mobile_number")
    private String mobileNumber;

    @Column(name = "experience")
    private String experience;

    @Column(name = "ctc")
    private String ctc;

    @Column(name = "company")
    private String company;

    @NotNull
    @Column(name = "notice_period")
    private String noticePeriod;

    @Column(name = "prefered_job_location")
    private String preferedJobLocation;

    @Column(name = "resume_filepath_name")
    private String resumeFilepathName;

    @Column(name = "primary_skill")
    private String primarySkill;

    @NotNull
    @Column(name = "is_active")
    private Short isActive;

    @NotNull
    @Column(name = "row_created")
    private Date rowCreated;

    @Column(name = "row_altered")
    private Date rowAltered;

    @NotNull
    @ManyToOne
    @JoinColumn(name="tracker_fk_id")
    private Tracker trackerFk;

}

任何人都可以帮助获得等效的 Hibernate 查询。

谢谢

最佳答案

您可以像这样创建一个查询:

//Select your object that you want
Query query = em.createNamedQuery("SELECT a FROM DemoTable a WHERE mycondition");

1-以防单例约会

//Get result list or a single result like what you want
DemoTableEntity myresult = (DemoTableEntity) query.getSingleResult();

//get the date from this result
Date mydate = myresult.getRowCreated();

2-以防获取日期列表

List<Date> listeDate = new ArrayList<>();

List<DemoTableEntity> list = query.getResultList();

for(DemoTableEntity ent : list){
   listeDate.add(ent.getRowCreated());
}

3-如果要获取一列的结果列表

Query query = em.createNamedQuery("SELECT a.rowAltered FROM Candidates a");
List<Date> dates = query.getResultList();

希望对您有所帮助。

关于java - 将 PostgreSQL Query 转换为对应的 Hibernate Query,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40524426/

相关文章:

java - 连接被远程主机强行关闭

java - 不能覆盖父类的方法

sql - 运行用户定义的 SQL 脚本的 postgresql pgBench 工具

java - Hibernate 和键值对实现

java - 插入场景中按版本划分的 JPA/Hibernate 乐观锁

java - 单个线程中的单个 hibernate session 导致死锁

java - 在 Java 中膨胀 byte[] 时出现问题?

java - set- 和 getListAdapter 错误

postgresql - 如何将微秒的整数转换为 postgres 中的间隔字段?

json - FROM 子句中的 PostgreSQL json_array_elements - 为什么这不是笛卡尔连接?