我正在尝试在表中删除外键约束,但是ucanaccess不支持SQL“ DROP CONSTRAINT”语句。错误说:
java.lang.UnsupportedOperationException:仅Hibernate支持DROP CONSTRAINT hbm2ddl.auto“ create”
有人知道解决这个问题的方法吗?
private void dropTables() throws SQLException {
final String RENTALS = "RENTALS";
Statement statement = conn.createStatement();
DatabaseMetaData metaData = conn.getMetaData();
ResultSet rs = metaData.getTables(null, null, RENTALS, null);
while (rs.next()) {
if (rs.getString(3).equals(RENTALS)) {
statement.executeUpdate("ALTER TABLE RENTALS DROP CONSTRAINT"
+ " custNumber;");
statement.executeUpdate("ALTER TABLE RENTALS DROP CONSTRAINT"
+ " vehNumber;");
statement.executeUpdate("DROP TABLE CUSTOMERS;");
statement.executeUpdate("DROP TABLE VEHICLE;");
statement.executeUpdate("DROP TABLE RENTALS;");
}
}
}
错误消息暗示将hbm2ddl.auto
设置为create
将解决问题:
<entry key="hibernate.hbm2ddl.auto" value="create">
但是,您可能需要三思而后行,因为这意味着与Hibernate实体关联的所有表都将在每次启动应用程序时创建和删除。