【问题标题】:How to check the equality of Two dates in JPA如何在 JPA 中检查两个日期的相等性
【发布时间】:2014-08-28 23:07:47
【问题描述】:

我无法在 JPA 中检查两个日期是否相等。在我添加出生日期之前,下面的比较工作正常。我不确定我的 JPQL 是否正确:

  TypedQuery<Applicant>  query = em.createQuery("select app "
                + "from Applicant app where "
                + "app.firstName = :firstName AND app.middleName = :middleName "
                + "AND app.lastName = :lastName" 
                +" AND app.dob = :dateOfBirth", Applicant.class);

            query.setParameter("firstName", searchableApplicant.getFirstName().trim());
            query.setParameter("middleName", searchableApplicant.getMiddleName().trim());
            query.setParameter("lastName", searchableApplicant.getLastName().trim());
           query.setParameter("dateOfBirth", searchableApplicant.getDob());   

申请对象属性:

 public class Applicant implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@Column(name = "applicant_id")
private Integer applicantId;
@Size(max = 45)
@Column(name = "first_name")
private String firstName;
@Size(max = 45)
@Column(name = "middle_name")
private String middleName;
@Size(max = 45)
@Column(name = "last_name")
private String lastName;
@Size(max = 45)
@Column(name = "maiden_name")
private String maidenName;
@Column(name = "dob")
@Temporal(TemporalType.DATE)
private Date dob;

【问题讨论】:

    标签: jpa jpql


    【解决方案1】:

    JSF 日期转换器默认为 UTC 时区。当使用 UTC 时区(默认情况下 JSF)解释这些日期时,您将得到几个小时的时间,因此前一天将被表示。

    解决方案就在这里: JSF page reflects Date incorrectly - 1 Day shifted

    【讨论】:

      猜你喜欢
      • 2014-06-28
      • 2023-04-04
      • 2018-06-28
      • 2013-02-25
      • 1970-01-01
      • 1970-01-01
      • 2021-05-06
      • 1970-01-01
      • 2015-07-19
      相关资源
      最近更新 更多