gpt4 book ai didi

java - 如何为给定查询编写JPA CriteriaBuilder?

转载 作者:行者123 更新时间:2023-12-01 18:47:54 24 4
gpt4 key购买 nike

SELECT * FROM Emp_Main WHERE status = 'QUIT' AND to_Char(effective_date,'YYYY')= '2018';


在此示例中,我已将代码硬编码为“ 2018”。但是在实际代码中,它是一个变量 :year。我也有这样的Java EmpMain模型:

@Entity
@Table(name="EMP_MAIN")
public class EmpMain implements Serializable {
private static final long serialVersionUID = 1L;

@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "EMP_MAIN_SEQ")
@SequenceGenerator(sequenceName = "EMP_MAIN_S", allocationSize = 1, name = "EMP_MAIN_SEQ")
@Column(name="EMP_ID")
private long empId;

@Temporal(TemporalType.DATE)
@Column(name="EFFECTIVE_DATE")
private Date effectiveDate;
enter code here
@Column(name="STATUS")
private String status;

//Getters and Setters
}

最佳答案

哦!我忘了添加我想做的功能....这是我正在使用的功能:

public List<EmpMain> getQuitEmployeesByYear(String inputYear)
{
List<EmpMain> listOfEmployees = null;
CriteriaBuilder builder = entityManager.getCriteriaBuilder();
CriteriaQuery<EmpMain> query = builder.createQuery(EmpMain.class);

Root<EmpMain> root = query.from(EmpMain.class);

Predicate statusPredicate = builder.equal(root.get("status"), "QUIT");


Expression<String> expression = builder.function(
"to_char", String.class,
root.get("effectiveDate"), "YYYY",
builder.parameter(String.class, inDate));

query.select(root).where(builder.and(statusPredicate, expression));

listOfEmployees = query.setParameter("inDate",
inputDate).getSingleResult();

return listOfEmployees;

关于java - 如何为给定查询编写JPA CriteriaBuilder?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59793217/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com