- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试创建一个应用程序,可以在 ObjectDB 数据库(嵌入)中存储包含文件和文件夹的树结构,但即使进行简单的测试,我仍然会收到错误...
Node.java
@MappedSuperclass
public abstract class Node {
@Column(name = "Name", nullable = false)
private String name;
@Column(name = "Parent_FK")
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "FolderID", nullable = true)
private FolderNode parent = null;
public Node() {
}
public Node(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public boolean hasParent() {
return (parent != null);
}
public FolderNode getParent() {
return parent;
}
void setParent(FolderNode parent) {
this.parent = parent;
}
@Override
public int hashCode() {
return new HashCodeBuilder(17, 31).append(name).toHashCode();
}
@Override
public boolean equals(Object obj) {
if (obj == null) {
return false;
}
if (obj == this) {
return true;
}
if (obj instanceof Label) { // TODO is instanceof enough??
Label other = (Label) obj;
return name.equals(other.getName());
}
return false;
}
}
FolderNode.java
@Entity(name = "Folders")
public class FolderNode extends Node {
@Column(name = "FolderID")
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long id;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "parent", fetch = FetchType.LAZY, orphanRemoval = true)
private Set<Node> children = new HashSet<Node>();
public FolderNode() {
}
public FolderNode(String name) {
super(name);
}
public Set<Node> getChildren() {
return children;
}
public void setChildren(Set<Node> children) {
this.children = children;
}
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
}
//Init
EntityManagerFactory emf = Persistence.createEntityManagerFactory("database.odb");
EntityManager em = emf.createEntityManager();
//Create object
FolderNode rootFolder = new FolderNode("root");
//Persist
em.getTransaction().begin();
em.persist(rootFolder);
em.getTransaction().commit();
em.close();
emf.close();
emf = Persistence.createEntityManagerFactory("database.odb");
em = emf.createEntityManager();
TypedQuery<FolderNode> query = em.createQuery("SELECT f FROM Folders f", FolderNode.class);
List<FolderNode> result = query.getResultList();
这就是它崩溃并出现异常的地方:
[ObjectDB 2.3.5_07] javax.persistence.PersistenceException
Failed to write the value of field field FolderNode.children using reflection (error 363)
如果我在获取对象之前不关闭并重新打开 EntityManagerFactory 和 EntityManager,问题似乎就会消失。
我在这里缺少什么?
最佳答案
您的代码演示了处理映射父类(super class)时的问题。如果您将 @MappedSuperclass 注释替换为 @Entity(对于 Node 类),您的测试将运行良好。
ObjectDB 应该将映射的父类(super class)作为实体类处理,因此按照您的帖子 - 此问题已得到解决,并且您的测试(使用 @MappedSuperclass)应该适用于构建 2.3.6_14。
关于java - ObjectDB,写入字段值失败(错误363),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8934014/
在这个基准测试中,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
我是一名优秀的程序员,十分优秀!