- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在学习本教程时:
http://www.objectdb.com/tutorial/jpa/eclipse
我收到以下错误:
Exception in thread "main" [ObjectDB 2.5.4_05] javax.persistence.PersistenceException
Type tutorial.model.Point is not found (error 301)
at com.objectdb.jpa.EMImpl.persist(EMImpl.java:437)
at objectdb.tutorial.main.Main.main(Main.java:25)
Caused by: com.objectdb.o.TEX: Type tutorial.model.Point is not found
at com.objectdb.o.MSG.e(MSG.java:107)
at com.objectdb.o.TYM.ay(TYM.java:1017)
at com.objectdb.o.TYM.ap(TYM.java:807)
at com.objectdb.o.TYM.ao(TYM.java:757)
at com.objectdb.o.TYM.at(TYM.java:873)
at com.objectdb.o.TYM.aw(TYM.java:945)
at com.objectdb.o.OBM.bB(OBM.java:371)
at com.objectdb.o.OBM.bB(OBM.java:257)
at com.objectdb.jpa.EMImpl.persist(EMImpl.java:434)
... 1 more
Caused by: java.lang.ClassNotFoundException: tutorial.model.Point
at com.objectdb.o.TYM.findClass(TYM.java:1033)
at com.objectdb.o.ACL.loadClass(ACL.java:131)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
at com.objectdb.o.TYM.ay(TYM.java:1013)
... 8 more`
我查看了这篇文章( Problems searching empty user database with ObjectDB ),但由于某种原因,我的 EntityManager 实例没有成员函数 getMetamodel()。因此,我尝试创建自己的持久性单元,下面是我的代码。我仍然收到运行时错误,该错误似乎发生在第一个 for 循环中的 em.persist(p) 上。
package objectdb.tutorial.main;
import javax.persistence.*;
import objectdb.tutorial.model.Point;
import java.util.*;
public class Main {
public static void main(String[] args) {
// Open a database connection
// (create a new database if it doesn't exist yet):
EntityManagerFactory emf =
Persistence.createEntityManagerFactory("my-pu");
EntityManager em = emf.createEntityManager();
// Store 1000 Point objects in the database:
em.getTransaction().begin();
for (int i = 0; i < 1000; i++) {
Point p = new Point(i, i);
em.persist(p);
}
em.getTransaction().commit();
// Find the number of Point objects in the database:
Query q1 = em.createQuery("SELECT COUNT(p) FROM Point p");
System.out.println("Total Points: " + q1.getSingleResult());
// Find the average X value:
Query q2 = em.createQuery("SELECT AVG(p.x) FROM Point p");
System.out.println("Average X: " + q2.getSingleResult());
// Retrieve all the Point objects from the database:
Query query =
em.createQuery("SELECT p FROM Point p");
List<Point> results = query.getResultList();
for (Point p : results) {
System.out.println(p);
}
// Close the database connection:
em.close();
emf.close();
}
}
实体:
package objectdb.tutorial.model;
import java.io.Serializable;
import javax.persistence.*;
@Entity
public class Point implements Serializable {
private static final long serialVersionUID = 1L;
@Id @GeneratedValue
private long id;
private int x;
private int y;
public Point() {
}
public Point(int x, int y) {
this.x = x;
this.y = y;
}
public Long getId() {
return id;
}
public int getX() {
return x;
}
public int getY() {
return y;
}
@Override
public String toString() {
return String.format("(%d, %d)", this.x, this.y);
}
}
持久性.xml:
<?xml version="1.0" encoding="UTF-8" ?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" version="1.0">
<persistence-unit name="my-pu">
<description>My Persistence Unit</description>
<provider>com.objectdb.jpa.Provider</provider>
<!-- <mapping-file>META-INF/mappingFile.xml</mapping-file> Not sure what this is-->
<class>objectdb.tutorial.model.Point</class>
<properties>
<property name="javax.persistence.jdbc.url"
value="objectdb://localhost/tutorial.odb"/>
<property name="javax.persistence.jdbc.user" value="admin"/>
<property name="javax.persistence.jdbc.password" value="admin"/>
</properties>
</persistence-unit>
</persistence>
我很感激任何建议。谢谢。
最佳答案
错误消息:“找不到类型tutorial.model.Point”指定包tutorial.model 中的Point 类。您的包名称是objectdb.tutorial.model。也许您以前有过该包名称,但您将包移动到了新的位置和名称。
尝试删除数据库文件,因为它仍然包含以前名称中的类(或者如果您需要数据,请按照 ObjectDB 网站上有关 schema change 的说明进行操作)。
如果您没有 getMetamodel 方法,则在 ObjectDB 之前的类路径中可能有一个旧的 JPA 1.0 jar(其中包括 JPA 2.1 jar)。您必须修复类路径以避免出现其他问题。
关于java - ObjectDB:未找到持久性异常类型错误 301,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22676105/
在这个基准测试中,ObjectDB 是最快的 DB: http://www.jpab.org/All/All/All.html 但我看不到来自 ObjectDB 的任何其他基准测试结果。有人在使用 O
在学习本教程时: http://www.objectdb.com/tutorial/jpa/eclipse 我收到以下错误: Exception in thread "main" [ObjectDB
我正在尝试创建一个应用程序,可以在 ObjectDB 数据库(嵌入)中存储包含文件和文件夹的树结构,但即使进行简单的测试,我仍然会收到错误... 实体类 Node.java @MappedSuperc
我正在使用 Tomcat、Eclipse 和 Maven。我将 ObjectDB 添加到项目中(库 > 添加外部 jar)。 在 Eclipse 中,一切似乎都很好。它不显示任何“未找到”错误并且自动
我需要一个带有 ObjectDB 的原子计数器,但以下代码无法按我的预期工作: final EntityManagerFactory emf = Persistence.createEntit
我正在尝试设置 ObjectDB。我能够创建一个数据库并使用资源管理器查看它,使用嵌入式服务器模式能够在运行我的程序时保持资源管理器打开。当我的数据库位于 $objectdb/db/目录中时,这一切都
以下代码: EntityManagerFactory emf = Persistence.createEntityManagerFactory("test.odb"); EntityM
我正在创建一个使用 ObjectDB 来创建和维护一组数据库的 Java 应用程序。我目前正在尝试实现一个数据库来存储由用户名和密码字符串组成的用户对象。在 JFrame/swing 类上,我有一个用
我正在使用 ObjectDB 构建 Spring MVC 应用程序。我的目标是使用 Java 8 日期和时间作为查询参数,以便在 where 子句中进行比较。 假设我有以下具有测量日期时间对象的实体:
我对 ObjectDB 非常陌生。我尝试使用它的原因是使用嵌入式数据库创建桌面java应用程序。换句话说,我最终想给我的 friend 一个单独的可运行的 jar 文件,这样他就可以访问 javaFX
我正在尝试根据传递给它的参数来填充 tsp 页面。目前我正在使用博客文章的标题,我不喜欢这个,但我想要概念证明,并且在获取对象 ID 时遇到困难。因此,我暂时传入标题字符串,以便稍后更改它。 我的查询
我有一个 DaoService,它在应用程序启动时被初始化。 public DaoService() { Map properties = new HashMap(); propert
我的 Java 应用程序中使用了一个 ObjectDB 数据库,它只包含一种类的负载,我们称它为 Record。 我希望我的程序是开放的/可扩展的,假设有人修改了 Record 类,并添加了另一个字段
假设我在 java 中创建了一个名为 Point 的对象,具有 2 个属性(int x 和 int y),并将一些实例存储在 objectdb 文件中。我知道如何从该文件中检索所有项目(作为对象),但
我面临着通过某些(子)字符串搜索实体的简单问题,它们可能包含这些字符串。例如。我有 u_name 为“rags”、“mechrags”、“meragsch”的用户,我将进入搜索窗口“rags”,然后我
我正在尝试使用 JPA 创建一个 objectdb。下面的代码是我所做的,但不确定我是否正确完成。实体是学生,属性是名字、姓氏等。有人知道我是否设置正确或错误吗? package Student;
我最近完成了本教程, http://www.objectdb.com/tutorial/jpa/eclipse/spring/run 它说在Tomcat目录下创建了.odb文件,但是我找不到Tomca
我想知道是否可以在可运行的 JAR 中包含 ObjectDB 数据库文件 .odb。 方法: EntityManagerFactory emf = Persistence.createEntityMa
我对 Spring JPA 与 ObjectDB 数据库配合是一个新手,但我遇到了一个无法解决的问题。 我有一个使用上述技术编写的应用程序,它工作正常,它保留新实体等(因此我认为配置 bean 没有问
文件 .vscode/.ropeproject/objectdb 在对一些 python 代码应用重构后(使用 DonJayamanne 的 pythonVSCode 扩展)被修改(创建)。 obje
我是一名优秀的程序员,十分优秀!