【发布时间】:2020-09-11 11:21:51
【问题描述】:
创建后,我需要将数据库压缩到一个 zip 文件中(并删除数据库的原始版本)。使用 EntityManagerFactory 创建它后,我将其关闭,以便释放连接并且我可以操作数据库文件。
问题是即使我关闭 EntityManagerFactory 数据库目录仍然被阻止,因为它说它正在使用(它不应该?)。
我创建了一个重新创建问题的 mre...
import java.util.HashMap;
import java.util.Map;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
public class Main {
private static EntityManagerFactory entityManagerFactory;
public static void main(String[] args) {
String dbURL = "jdbc:derby:C:\\Users\\XXX\\Desktop\\MyDB;create=true";
Map<String, String> persistenceMap = new HashMap<String, String>();
persistenceMap.put("javax.persistence.jdbc.url", dbURL);
entityManagerFactory = Persistence.createEntityManagerFactory("PUBLIC", persistenceMap);
entityManagerFactory.close();
entityManagerFactory = null;
System.out.println("DONE");
//I should be able to delete the database directory now (I'm not).
try {
Thread.sleep(Long.MAX_VALUE);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
【问题讨论】:
标签: java persistence derby jdb