我目前正在Spring MVC设计应用程序中使用Hibernate,该应用程序接收数据并将其存储到MySQL数据库中。我有一个模型和枚举的混合映射。一切都很好,存储到DB中的数据是正确的(它存储枚举ORDINAL值)。
然而,当我使用CrudRepository中的findAll()方法输出结果时,结果显示的是正确的枚举值,但形式是STRING,而不是ORDINAL。关于我可以实现什么,或者事情是这样的,有什么想法吗?
下面是一小段代码来展示我到目前为止所拥有的内容:
枚举(标记为"汽车"):
FORD,
TOYOTA,
CHEVY
POJO片段(标记为"经销商"):
@Enumerated(EnumType.ORDINAL)
private Cars carType;
//getters and setters
DAO(标记为"经销商DAO"):
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编辑器来查看数据,那么Dealership表会显示FORD的枚举ORDINAL值(在我调用/dataLoad请求之后)。但是当我调用/findEverything请求时,它显示的是String、FORD,而不是值。