我目前在Spring MVC设计应用程序中使用Hibernate,该应用程序接收数据并将其存储到MySQL数据库中。我有相互映射的模型和枚举的混合物。一切正常,存储到数据库中的数据是正确的(它存储枚举ORDINAL值)。
但是,当我使用CrudRepository中的findAll()方法输出结果时,结果显示正确的枚举值,但是以STRING形式而不是ORDINAL形式。关于我可以实现什么的任何想法,或者这是怎么回事?
下面是一小段代码,展示了我到目前为止所拥有的内容:
Enum(标记为" Cars"):
FORD,
TOYOTA,
CHEVY
POJO代码段(标有"经销商"):
@Enumerated(EnumType.ORDINAL)
private Cars carType;
//getters and setters
DAO(标记为" DealershipDAO"):
public interface DealershipDao extends CrudRepository<Dealership, Integer> {
}
控制器:
@Autowired
private DealershipDao dao;
@RequestMapping(value="/dataLoad")
public String dataLoad() {
Dealership dealer = new Dealership();
dealer.setCarType(Cars.FORD);
dao.save(dealer);
return "success";
}
@RequestMapping(value="/findEverything", produces = MediaType.APPLICATION_JSON_VALUE, method = RequestMethod.GET)
public Iterable<Dealership> findAll() {
return dao.findAll();
}
现在,如果我使用MySQL编辑器查看数据,经销商表会显示FORD的枚举ORDINAL值(在我调用/ dataLoad请求之后)。但是当我调用/ findEverything请求时,它会显示String,FORD,而不是值。