首页 > 解决方案 > 在 Hibernate/Angular 中按birthDate 查找

问题描述

我想按出生日期创建搜索。这是我在java中的类:

@Entity
@Table(name="child")
public class Child implements Serializable {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name="ID")
    private int id;

    @Column(name="FirstName")
    private String firstName;

    @Column(name="SecondName")
    private String secondName;

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

    @Column(name="BirthDate")
    @Temporal(TemporalType.DATE)
    private Date birthDate;

    @Column(name="Sex")
    private String sex;

  @JsonBackReference
  @ManyToOne(cascade = CascadeType.ALL)
  @JoinColumn(name="familyid",referencedColumnName = "id")
  private Family family;
}

和查询:

@Transactional
public List<Family> getFamilyByBirthDateChild(String string) {
    HibernateUtil.initManager();
    TypedQuery<Family> query = HibernateUtil.getEntityManager().createQuery("SELECT family FROM Family family INNER JOIN family.childList ef WHERE ef.birthDate = :birthdate ",Family.class);
    query.setParameter("birthdate",string);
    List<Family> result = query.getResultList();
    HibernateUtil.shutdown();
    return result;
}

我在 Angular 6 中有正面:

<div style="width: 300px;">
  <form (ngSubmit)="onSubmit()">
    <div class="form-group">
      <label for="id">Search</label>
      <input type="text" class="form-control" id="id" required [(ngModel)]="val" name="pesel">
    </div>
    <div class="form-group">
      <label for="department">Sex</label>
      <select id="department" name="department"
              [(ngModel)]= "choice" class="form-control">
        <option value="Pesel">Pesel</option>
        <option value="Name">Imię</option>
        <option value="Sourname">Nazwisko</option>
        <option value="Sex">Płeć</option>
        <option value="BirthDate">Data</option>
      </select>
    </div>

    <div class="btn-group">
      <button type="submit" class="btn btn-success">Submit</button>
    </div>
  </form>
</div>

和组件中的代码:

   case 'BirthDate': {
        const dateB = new Date(this.val);
        this.dataService.getFamilyByBirthDateChild(dateB)
          .subscribe(families => this.families = families);
        break;
      }

当我写日期例如“07/02/2018”时,我收到“错误”消息:

"Http failure response for (unknown url): 0 Unknown Error".

我不知道是什么问题,因为当我从文本区域获取字符串时,我将其解析为对象日期,但它不起作用......谢谢您的帮助。

@Edit 链接生成:http://localhost:8080/api/getFamilyByBirthDateChild/Mon%20Jul%2002%202001%2000:00:00%20GMT+0200%20(CEST)

标签: javaangularhibernatetypescript

解决方案


推荐阅读