【发布时间】:2014-06-11 19:42:11
【问题描述】:
我正在使用 Java 1.6 和 Hibernate 3.6.10.Final。我需要根据应用程序中内置的枚举检查几个数据库表的内容。 (数据库表往往会偶尔添加和删除值,没有人告诉开发人员。)所以on startup我想做这样的事情:
for (service myService : ListOfServices() ) {
enum MyEnum = GoGetCorrespondingEnum(myService);
Map<Character, String> databaseMap = myService.findAll();
if (databaseMap.size() != MyEnum.values().length) {
logger.error("Enum is out of sync with database tableand must be fixed!");
}
}
问题是,在第二行中,我不知道如何为我正在查看的服务获取相应的枚举。谁能推荐一个方法?
【问题讨论】:
-
依赖于数据库记录存在的代码听起来天生就有问题,你能把它完全移出数据库吗?
-
不幸的是,没有。数据库人员希望数据库中的信息用于报告目的,应用程序人员希望应用程序中的信息用于代码可读性目的。我被夹在这两个要求之间。我只是想防止应用程序在用户面前爆炸。