如何通过Hibernate获取mysql中枚举类型的所有可能值

时间:2014-12-22 06:24:59

标签: java mysql hibernate enums

我想用数据库中一列的值填充我的下拉列表,该列的数据类型为ENUM,其值为(A,B,C)。我已经阅读了很多问题和答案,建议在java中创建ENUM,然后将其映射到列。

但我认为这不一致。如果我在数据库中进行更改并忘记在Java枚举中反映出这种更改,该怎么办?它可能会造成一个大错误,因为双方都进行编辑是完全静态的。

有没有更好的解决方案来应对这种情况?我希望通过hibernate从数据库列中获取所有可能的值,而不是从反映数据库中列的Java枚举中获取。

1 个答案:

答案 0 :(得分:0)

我相信会有更好的方法,但尝试

在mysql中

获取可以使用的col的描述:

desc tableName colName

例如desc测试名称 enter image description here

所以要在Hibernate中获取这一行:

final Session session = sessionFactory.openSession();
SQLQuery q = session.createSQLQuery("desc tableName colName");
List<Object[]> descRow = q.list().get(0);

//然后遍历实体