我正在尝试在我的 java/servlet 项目中为我的模型类实现一个模板,其中包含创建表、插入、更新、删除和选择数据的方法。所有这些方法的起点是这个方法
protected EntityManager getEntityManager()
,我在其中定义了sqlite数据库所在的位置以及其他首选项。
但是执行该方法时,会出现错误
javax.persistence.PersistenceException: No Persistence provider for EntityManager named default
。我目前对该方法的实现是:
public abstract class Dao<E extends Model> {
private Class<E> classe;
public Dao(Class<E> classe) {
this.classe = classe;
if(!exists()) create();
}
protected EntityManager getEntityManager() {
String url = getClass().getResource("/data.db").toString();
Map<String, String> properties = new HashMap<>();
properties.put("javax.persistence.jdbc.provider", "org.eclipse.persistence.jpa.PersistenceProvider");
properties.put("javax.persistence.jdbc.driver", "org.sqlite.JDBC");
properties.put("javax.persistence.jdbc.url", "jdbc:sqlite:"+url);
EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory("default", properties);
return entityManagerFactory.createEntityManager();
}
...
}
任何人都知道如何解决这个问题,而不必包含像 hibernate 或类似的外部库?