【发布时间】: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