标签: objectdb

是否已准备好ObjectDB生产?

在这个基准测试中,ObjectDB是最快的数据库:http: //www.jpab.org/All/All/All.html

但我看不到ObjectDB的任何其他基准测试结果.是否有人使用ObjectDB?生产准备好了吗?有什么经历?

java jpa object-oriented-database objectdb

33
推荐指数
5
解决办法
1万
查看次数

JPA中的调用方法

我正在使用带有JPA的ObjectDB.我想调用myMethod().例如:

entityManager.createQuery("SELECT ... FROM ... WHERE MyClass.myMethod() = 100")
Run Code Online (Sandbox Code Playgroud)

可能吗?在类中的方法之前可能需要任何注释吗?

@Entity
public class MyClass implements Serializable {

    @Basic 
    private int x;

    @Basic
    private int y;

    public int myMethod() {
        return x*1000+y;
    }
}
Run Code Online (Sandbox Code Playgroud)

java methods jpa objectdb

9
推荐指数
1
解决办法
6683
查看次数

使用JPA和ObjectDB通过ID选择多个对象?

我无法让ObjectDB根据其ID选择多个值。我的查询非常简单:

Query query = getEntityManager().createQuery("SELECT i FROM " + getEntityClass().getSimpleName() + " i WHERE i.id IN :ids", entityClass);
query.setParameter("ids", ids);
List<Object> values = query.getResultList();
Run Code Online (Sandbox Code Playgroud)

但是无论如何,这总是返回一个空列表。

ID列表包含所有现有ID的列表,均作为Long对象。我对此进行了三重检查。

查询如:

entityManager.find(getEntityClass(), id);
Run Code Online (Sandbox Code Playgroud)

...和...

Query query = entityManager.createQuery("SELECT i FROM " + getEntityClass().getSimpleName() + " i", entityClass);
Run Code Online (Sandbox Code Playgroud)

...工作正常。

另外,如果我这样做:EntityManager.find(getEntityClass(),1L);

我得到的结果是正确的结果:一个实例。

但:

List<Long> ids = new LinkedList<Long>();
ids.add(1L);
Query query = getEntityManager().createQuery("SELECT i FROM " + getEntityClass().getSimpleName() + " i WHERE i.id IN :ids", entityClass);
query.setParameter("ids", ids);
List<Object> values = query.getResultList();
Run Code Online (Sandbox Code Playgroud)

向该values变量返回一个空列表。

我想念什么? …

java jpa jpql jpa-2.0 objectdb

3
推荐指数
1
解决办法
7638
查看次数

Google App Engine - JDODetachedFieldAccessException

我是JPA/JDO和整个objectdb世界的新手.

我有一个带有一组字符串的实体,看起来有点像:

@Entity
public class Foo{

    @Id
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    private Key id;

    private Set<String> bars;

    public void setBars(Set<String> newBars){
        if(this.bars == null)
            this.bars = new HashSet<String>;
        this.bars = newBars;
    }

    public Set<String> getBars(){
        return this.bars;
    }

    public void addBar(String bar){
        if(this.bars == null)
            this.bars = new HashSet<String>;
        this.bars.add(bar);
    }

}
Run Code Online (Sandbox Code Playgroud)

现在,在代码的另一部分,我正在尝试做这样的事情:

EntityManager em = EMF.get().createEntityManager();
Foo myFoo = em.find(Foo.class, fooKey);
em.getTransaction().begin();
myFoo.addBar(newBar);
em.merge(myFoo);
em.getTransaction().commit();
Run Code Online (Sandbox Code Playgroud)

当然,当newBar是String时.

但是,我得到的是:

javax.jdo.JDODetachedFieldAccessException: You have just attempted to access field      "bars" yet this field was not detached …
Run Code Online (Sandbox Code Playgroud)

google-app-engine jpa jdo objectdb

3
推荐指数
1
解决办法
1642
查看次数

什么是ObjectDB?它与Hibernate之类的ORM有什么不同?

在ObjectDB中我看到:( 是链接.)

ObjectDB是一个功能强大的面向对象的数据库管理系统(ODBMS).

我看到它实现了JPA,所以它是否意味着它应该是一个ORM提供者?或不?有什么不同?

orm jpa objectdb

1
推荐指数
1
解决办法
1707
查看次数