我想用数据库中一列的值填充我的下拉列表,该列的数据类型为ENUM
,其值为(A,B,C)。我已经阅读了很多问题和答案,建议在java中创建ENUM
,然后将其映射到列。
但我认为这不一致。如果我在数据库中进行更改并忘记在Java枚举中反映出这种更改,该怎么办?它可能会造成一个大错误,因为双方都进行编辑是完全静态的。
有没有更好的解决方案来应对这种情况?我希望通过hibernate从数据库列中获取所有可能的值,而不是从反映数据库中列的Java枚举中获取。
答案 0 :(得分:0)
我相信会有更好的方法,但尝试。
在mysql中获取可以使用的col的描述:
desc tableName colName
例如desc测试名称
所以要在Hibernate中获取这一行:
final Session session = sessionFactory.openSession();
SQLQuery q = session.createSQLQuery("desc tableName colName");
List<Object[]> descRow = q.list().get(0);
//然后遍历实体