标签: jdo

如何解决jdoconfig.xml中xsi:noNamespaceSchemaLocation的验证错误

自从我今天更新到GAE 1.7.2.1以来,我在所有jdoconfig.xml文件中都在eclipse中遇到验证错误.

我有默认的jdoconfig.xml内容:

[...]
<jdoconfig xmlns="http://java.sun.com/xml/ns/jdo/jdoconfig"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:noNamespaceSchemaLocation="http://java.sun.com/xml/ns/jdo/jdoconfig">
[...]
Run Code Online (Sandbox Code Playgroud)

并且eclipse验证抛出:

Referenced file contains errors (http://java.sun.com/xml/ns/jdo/jdoconfig).  
For more information, right click on the message in the Problems View and 
select "Show Details..."
Run Code Online (Sandbox Code Playgroud)

点击细节我可以看到一堆如下的行:

s4s-elt-character: Non-whitespace characters are not allowed in schema elements
other than 'xs:appinfo' and 'xs:documentation'. Saw 'var_U = "undefined";'.
Run Code Online (Sandbox Code Playgroud)

在"Saw ......"中的不同行和不同内容

它发生在我开始使用谷歌插件中的"新建Web应用程序项目..."的每个项目中.

所以有人有这个问题吗?任何修复?

eclipse google-app-engine jdo xsd-validation

13
推荐指数
2
解决办法
2万
查看次数

如何减少Google App Engine数据存储延迟?

通过appstats,我可以看到我的数据存储区查询大约需要125ms(api和cpu组合),但在执行查询之前通常会有很长的延迟(例如最多12000ms).

我可以看到来自数据存储区的延迟与我的查询无关(例如,相同的查询/数据具有截然不同的延迟),所以我假设它是app引擎的调度问题.

其他人是否也看到同样的问题?

有没有减少延迟(例如管理控制台设置)?

这是appstats的屏幕截图.这个servlet只有很少的cpu处理.它执行getObjectByID,然后执行数据存储区查询.该查询具有OR运算符,因此它被app引擎转换为3个查询.

appstats截图 .如您所见,在第一个getObjectByID执行之前需要6000ms.get操作之前没有处理(除了获取pm).我认为这6000ms的延迟可能是由于实例预热,所以我将我的空闲实例增加到2以防止任何热身.

然后在getObjectByID和查询之间有大约1000ms的第二个延迟.get和查询之间没有代码行.代码只是获取getObjectByID的结果,并将数据用作查询的一部分.

总计是8097ms,但我的数据存储操作(以及99%的servlet)只有514ms(45ms api),尽管每次运行servlet时数字都会改变.这是另一个appstats屏幕截图,它是针对相同数据在同一个servlet上运行的. 在此输入图像描述

这是我的java代码的基础知识.出于安全考虑,我不得不删除一些细节.

user = pm.getObjectById(User.class, userKey);           
//build queryBuilder.append(...
final Query query = pm.newQuery(UserAccount.class,queryBuilder.toString());
query.setOrdering("rating descending");
query.executeWithArray(args); 
Run Code Online (Sandbox Code Playgroud)

编辑:使用Pingdom,我可以看到GAE延迟从450毫秒到7,399毫秒不等,或差异为1,644%!! 这是两个空闲实例,网站上没有用户. 在此输入图像描述

java google-app-engine latency jdo

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

什么是JPA和JDO规范之间的区别?

我一直在使用Hibernate ORM,它是JPA规范的一个实现来管理关系数据.我也听说过应该做同样的JDO规范(管理关系数据).

这两者之间的根本区别是什么?任何代码样本最受欢迎.JDO如何与其他Java技术堆栈集成,例如EJB3

java orm jpa jdo

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

为什么Objectify而不是JDO?

我正在接近Gwt + Gae世界.

我的基本需求是通过Gwt-Rpc发送我的实体类,而不是将它们复制到DTO中.

Objectify承诺很好地做到这一点.它声称它将隐藏所有"Jdo复杂性".

我从未使用过Jpa或Jdo技术. 所有的复杂性在哪里?

我的意思是,你能否提供一些关于JDO中复杂任务的简单例子,Objectify琐碎了吗?

也许关系?

google-app-engine jdo objectify

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

为什么Google App Engine文档强调JDO而不是JPA?

Google App Engine的大部分文档都是为JDO编写的.只有一页文档专门用于使用JPA.这是因为JDO更适合App Engine,还是有其他理由给予JDO优惠待遇?

java google-app-engine jpa jdo

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

为什么我在jdoconfig.xml中遇到错误?

Eclipse标记选项卡显示一些xml问题.当我检查这发生dynamic web moduleProject Facets.

这是我的项目层次结构:

在此输入图像描述

jdconfig.xml (自动生成):

<?xml version="1.0" encoding="utf-8"?>
<jdoconfig xmlns="http://java.sun.com/xml/ns/jdo/jdoconfig"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:noNamespaceSchemaLocation="http://java.sun.com/xml/ns/jdo/jdoconfig">

   <persistence-manager-factory name="transactions-optional">
       <property name="javax.jdo.PersistenceManagerFactoryClass"
       value="org.datanucleus.api.jdo.JDOPersistenceManagerFactory"/>
       <property name="javax.jdo.option.ConnectionURL" value="appengine"/>
       <property name="javax.jdo.option.NontransactionalRead" value="true"/>
       <property name="javax.jdo.option.NontransactionalWrite" value="true"/>
       <property name="javax.jdo.option.RetainValues" value="true"/>
       <property name="datanucleus.appengine.autoCreateDatastoreTxns" value="true"/>
       <property name="datanucleus.appengine.singletonPMFForName" value="true"/>
   </persistence-manager-factory>
</jdoconfig>
Run Code Online (Sandbox Code Playgroud)

标记窗口中显示的错误:

cvc-elt.1: Cannot find the declaration of element 'jdoconfig'.
Run Code Online (Sandbox Code Playgroud)

我收到此错误的原因是什么?

还有,是什么jdoconfig.xml

java xml eclipse xsd jdo

11
推荐指数
2
解决办法
7083
查看次数

Google App Engine,JDO和equals/hashCode

我在谷歌应用引擎中有一个工作正常.我意识到我忘记实现的JDO增强对象中的一个等于和hashCode(我需要在一个集合中使用该对象).所以我做了.我没有在这些实现中做任何特别的事情,事实上我只是使用Eclipse来生成它们.像这样:

@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Long id;

@Persistent
private String appleId;

@Override
public int hashCode() {
    final int prime = 31;
    int result = 1;
    result = prime * result
            + ((appleId == null) ? 0 : appleId.hashCode());
    return result;
}

@Override
public boolean equals(Object obj) {
    if (this == obj)
        return true;
    if (obj == null)
        return false;
    if (getClass() != obj.getClass())
        return false;
    User other = (User) obj;
    if (appleId == null) {
        if (other.appleId != null) …
Run Code Online (Sandbox Code Playgroud)

java google-app-engine equals hashcode jdo

10
推荐指数
2
解决办法
8623
查看次数

使用不正确的url验证jdoconfig

我正在使用jdo并使用jdoconfig.xml配置持久性管理器

然而,无论在哪里找到有关jdoconfig.xml的文档,它都声明应该使用http://java.sun.com/xml/ns/jdo/jdoconfig进行验证.

<jdoconfig xmlns="http://java.sun.com/xml/ns/jdo/jdoconfig"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:noNamespaceSchemaLocation="http://java.sun.com/xml/ns/jdo/jdoconfig">
etc
Run Code Online (Sandbox Code Playgroud)

此URL指向不存在的文件,我的xml验证程序报告错误.甚至使用它的目的是什么,我们是否可以相信网址不会改变,我们所有的xml文件都会突然停止验证?

有谁知道新的网址?

java xml xsd jdo

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

GWT + UIBinder + Gin + Guice + JDO + GAE示例

我试图链接所有这些技术,但有许多孤立的例子,我没有足够的经验将它们链接在一起

所以我的问题:是否有类似的例子?可以将UIBinder与杜松子酒一起使用吗?有任何建议可以实施吗?

gwt google-app-engine gwt-gin jdo uibinder

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

如何从GAE数据存储中删除列(属性)?

我有一个存储在GAE数据存储区中的持久化类.我已从课程中删除了其中一个属性.此表中的新记录显示<none已删除属性的值>.但有没有办法可以完全放弃这个专栏?

谢谢.

根据moraes的建议添加了以下"迁移"代码,但未达到预期效果:

PersistenceManager pm = PMF.get().getPersistenceManager();
try {
    Query q = pm.newQuery(UserLogin.class);
    Collection<UserLogin> list = (Collection<UserLogin>) q.execute();

    Iterator<UserLogin> iter = list.iterator();
    while (iter.hasNext()) {
        UserLogin obj = (UserLogin) iter.next();
        obj.setLoginDate(obj.getLoginDate());
    }

    pm.makePersistentAll(list); 

} finally {
    pm.close();
}
Run Code Online (Sandbox Code Playgroud)

database google-app-engine datastore jdo

8
推荐指数
3
解决办法
4116
查看次数