Tag: jdo

Google App Engine和SQL LIKE

有没有办法用类似于SQL LIKE语句的filter查询GAE数据存储区? 例如,如果一个类有一个字符串字段,并且我想找到该字符串中具有某些特定关键字的所有类,我该怎么做? 看起来JDOQL的匹配()不起作用……我错过了什么? 欢迎任何评论,链接或代码片段

Google数据存储区 – 更新实体时出现问题

我正在消除我的谷歌应用程序引擎/数据存储技能……并且陷入非常简单的困境。 根据GAE文档中的示例,我尝试更新实体,如下所示: // persistence and business logic PersistenceManager pm = PMF.get().getPersistenceManager(); // get it NickName n = pm.getObjectById(NickName.class, nicknameId); // update fields n.givenName = “new name”; n.nickName = “new nickname”; n.timeStamp = new Date(); // close manager to persist changes pm.close(); 这不起作用(因为更改不会持久,但没有错误或其他任何东西)! 与此同时,我发现如果我创建一个具有相同ID的新实体,则更改将保持不变: // persistence and business logic PersistenceManager pm = PMF.get().getPersistenceManager(); NickName n = […]

设置与类名不同的实体种类名称

有没有办法如何设置与我的Google App Engine中使用的类名不同的种类名称? 我正在使用Java和JDO来访问数据存储区。 关于Python中的类似问题存在疑问。 好像回答了。 设置与模型名称无关的种类名称(App Engine数据存储区)

Google App Engine错误:未找到匹配的索引。 (JAVA)

我正在编写一个查询,但它总是说“找不到匹配的索引”。 我不知道为什么。 我的代码如下: Query query = pm.newQuery(Classified.class); query.setFilter(“emp_Id == emp”); query.setOrdering(“upload_date desc”); query.declareParameters(“String emp”); List results = (List)query.execute(session.getAttribute(“emp_Id”).toString()); 我已经添加了上面的索引,但它没有帮助。

从现有数据库生成JDO对象

是否有从现有数据库生成JDO对象的工具? 我更喜欢一个看起来很棒的Eclipse插件,我可以使用它来生成和维护对象,但似乎这个目前还不存在。 是否有其他简单的工具来生成数据库对象?

无法使用GAE / J DataNucleus插件版本2.1.2获取新创建的JDO持久实体的ID

我的问题 我正在使用新的1.7.5 GAE / J SDK将我的应用程序从版本1.x移植到GAE / J的DataNucleus插件的2.0版本。 这将我的JDO版本从2.3更改为3.0.1。 我的持久化实体类具有类型为编码字符串的主键,以及对该对象的数字ID的只读访问权限。 每个实例都是其实体组的唯一成员(子级和父级仅通过数字ID链接)。 以前,我已经能够创建并持久化新的MyEntity实例,然后立即访问其数字ID以存储在父MyEntity实例的子ID列表中。 现在我发现新实例的数字ID在持久化后不会立即可用 – 即使它是生成并存储的并且稍后可用。 我的问题 在创建对象和持久性之后,我有什么办法可以立即恢复对数字ID的访问吗? “jdoconfig.xml”配置提取 […] 持久化实体类代码提取 @PersistenceCapable(identityType = IdentityType.APPLICATION, detachable = “true”) public class MyEntity implements Serializable { private static final long serialVersionUID = 1L; // No setter for this read-only data member @PrimaryKey @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY) @Extension(vendorName=”datanucleus”, key=”gae.encoded-pk”, value=”true”) private […]

如何在多个参数上动态构建JDO查询

可以使用JDO语法轻松查询多个参数,如下所示: //specify the persistent entity you’re querying and you filter usign params query = pm.newQuery(MyClass.class, ” customer == paramCustomer && date >= paramStartDate && date <=paramEndDate "); // declare params used above query.declareParameters("com.google.appengine.api.users.User paramCustomer, java.util.Date paramStartDate, java.util.Date paramEndDate"); //pass the object declared as params MyClassList = (List) query.execute(user, startDate, endDate); 使用filter以编程方式构建字符串很简单: “customer == paramCustomer && […]

非常大的实体组的交易

我正在尝试设计一个可以容纳大量数据的数据模型,有大量数据经验的人对此有任何反馈,即: // example only, not meant to compile public class TransactionAccount { private long balance; private List transactions = new ArrayList(); …. public long getBalance() { return balance; } } private class Transaction { public Date date; public long amount; } 根据我所读到的内容,在插入Transaction和更新balance获得事务完整性的唯一方法是使其成为一个实体组。 但是,随着时间的推移,特定TransactionAccount将有数百万笔TransactionAccount 。 对此实体组的写入次数较少,但读取次数会更高。 我知道它可能是分片的,但是读取balance是一个非常频繁的操作,并且分割它会使最常见的操作之一getBalance()成为最慢的操作。

如何正确添加/操纵实体组中的数千名儿童?

这是我之前关于在BigTables / JDO中处理大量对象的问题 。 假设TransactionAccount最终可能在其transactions列表中包含多达10,000个对象,那么它如何与Goodle应用程序引擎一起使用? 如何在没有将整个列表加载到内存中的情况下将对象添加到如此大的列表中? (假设不应该将10,000个对象加载到内存中?) 我不是想问你如何做我的功课,我只是不知道从哪里开始解决这个问题,应用引擎文档和谷歌搜索没有帮助:( // example only, not meant to compile @PersistenceCapable public class TransactionAccount { @PrimaryKey @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY) public Key key; private long balance; private long transactionCount; @Element(dependent = “true”) private List transactions = new ArrayList(); …. public long getBalance() { return balance; } } @PersistenceCapable private class Transaction […]

在Spring 3.1中配置JDO?

我以前所有的DAO都扩展了JdoDaoSupport类,现在在Spring 3.1中已经弃用了 。 我已经创建了自己的AbstractJdoDao类,它包装了PersistenceManagerFactory并且所有DAO都从那里扩展。 这是我应该做的方式吗? 同样在JDO的文档中 ,似乎PersistenceManagerFactory的直接实例化不是默认选项,而是使用包装在TransactionAwarePersistenceManagerFactoryProxy LocalPersistenceManagerFactoryBean 。 如何正确实例化这些bean并使它们与Spring的@Transactional注释一起使用。 这是我的应用程序上下文中与持久性相关的部分: org.datanucleus.store.appengine.jdo.DatastoreJDOPersistenceManagerFactory appengine true false false true true NONE 现在,当我加载访问数据存储的页面时: org.springframework.transaction.CannotCreateTransactionException: Could not open JDO PersistenceManager for transaction; nested exception is java.lang.IllegalStateException: No JDO PersistenceManager bound to thread, and configuration does not allow creation of non-transactional one here at org.springframework.orm.jdo.JdoTransactionManager.doBegin(JdoTransactionManager.java:369) ~[spring-orm-3.1.0.RELEASE.jar:3.1.0.RELEASE] at org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction(AbstractPlatformTransactionManager.java:371) ~[spring-tx-3.1.0.RELEASE.jar:3.1.0.RELEASE] at […]