我需要为 PostgreSQL 查询提供相应的 Hibernate 查询。
这里是查询
select DATE(row_created) from DemoTable
其中 DATE
是 PostgreSQL 中的内置函数,row_created
是 DemoTable
中的列,数据类型为 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/