【问题标题】:how to find candidates by date "findByDate"如何按日期“findByDate”查找候选人
【发布时间】:2019-10-09 11:33:04
【问题描述】:

我的问题是我无法按日期获取候选人,在我的代码中我使用了控制器和存储库,如下所示

1- 候选人控制器

   @RestController
   @RequestMapping("/api")
   public class CandidatController {

      @Autowired
      CandidatDao candidatdao;

      @GetMapping(value = "/GetAllCandidats")
      public List<Candidat> listeDesCandidat(){

          List<Candidat> candidats = candidatdao.findAll();
          return candidats;
      }    
      @GetMapping(value = "/GetAllCandidats/{date}")
      public List<Candidat> afficherCandidat(@PathVariable ("date") 
                      @DateTimeFormat(pattern="yyyy-MM-dd") Date date) {

          return  candidatdao.findByDate(date);
      }

2- CandidatDAO

  @Repository
  public interface CandidatDao extends JpaRepository <Candidat, String>{

    List<Candidat> findByDate(Date date);
   }

3-类候选人

  @Entity
  public class Candidat {

     @Id
     @GeneratedValue
     @Column(name = "candidat_id")
     private int id;

     private String nom;
     private String prenom;
     private String ville;
     private int numTel;
     private String mail;
     private String pseudo;
     private String roleCible;
     private String typeContrat;
     private String villeRecherchee;

     @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd")
     private Date date;

在浏览器中,结果是: 与(http://localhost:8080/api/GetAllCandidats/

 {
id: 1,
nom: "Sar",
prenom: "Samir",
ville: "tissemsilt",
numTel: 76676810,
mail: "kira.DJ@gmail.com",
pseudo: "FET",
roleCible: "INGENIEUR",
typeContrat: "CDI",
villeRecherchee: "NANTES",
techno: [ ],
date: "2019-04-16",
secteurActivites: [ ]
},
{
id: 2,
nom: "xxxx",
prenom: "yyyyy",
ville: "zzzzzz",
numTel: 76676810,
mail: "kira.DJ@gmail.com",
pseudo: "FET",
roleCible: "INGENIEUR",
typeContrat: "CDI",
villeRecherchee: "NANTES",
techno: [ ],
date: "2019-04-22",
secteurActivites: [ ]
},

但使用 (http://localhost:8080/api/GetAllCandidats/2019-04-22),结果为空:

[]

【问题讨论】:

  • Date 在日期或时间戳中(在数据库中?)。如果是后者,它可能不匹配,因为它包括时间,因此没有结果。如果您真的只想更改日期,请将 @Temporal(DATE) 添加到您的字段中以仅存储日期(并相应地更改列)。
  • 我使用了 [@Temporal(TemporalType.DATE) private Date date ],我数据库上的日期类型是“Date”,但结果仍然为空
  • 结果不是null,它是一个空列表。
  • 是的,是空列表

标签: java spring-boot


【解决方案1】:

我请你看看这个blog

建议你参考博文使用下面的代码。

@Temporal(TemporalType.DATE)
private Date date;

【讨论】:

  • 我使用了 [@Temporal(TemporalType.DATE) private Date date ],我数据库上的日期类型是“Date”,但结果仍然为空
  • 在 application.yml 属性中查看是否为休眠添加了 SQL 方言。或者.. 删除表一次,然后执行代码 JPA 将再次创建表。我希望那时我可以工作..
  • 我没有加sql方言,结果还是空,
  • 调试代码,可能是映射的问题
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-27
  • 2011-12-13
  • 1970-01-01
相关资源
最近更新 更多