- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想利用 Objectify4 的新功能,但是我的应用程序是构建的并且正在使用版本 3。我的应用程序主要基于 ObjectifyGenericDao
模式构建,并且Objectify4 设计模式与此有很大不同:
ObjectifyGenericDao.java
public class ObjectifyGenericDao<T> extends DAOBase
{
static final int BAD_MODIFIERS = Modifier.FINAL | Modifier.STATIC | Modifier.TRANSIENT;
static
{
// Register all your entity classes here
}
protected Class<T> clazz;
/**
* We've got to get the associated domain class somehow
*
* @param clazz
*/
protected ObjectifyGenericDao(Class<T> clazz)
{
this.clazz = clazz;
}
public ObjectifyGenericDao(ObjectifyOpts opts) {
super(opts);
//this.clazz = clazz;
}
public Key<T> put(T entity)
{
return ofy().put(entity);
}
// TODO This code was modified
// and need to be tested
public List<Key<T>> putAll(Iterable<T> entities)
{
Map<Key<T>, T> map = ofy().put(entities);
return new ArrayList<Key<T>>(map.keySet());
//return ofy().put(entities);
}
public void delete(T entity)
{
ofy().delete(entity);
}
public void deleteKey(Key<T> entityKey)
{
ofy().delete(entityKey);
}
public void deleteAll(Iterable<T> entities)
{
ofy().delete(entities);
}
public void deleteKeys(Iterable<Key<T>> keys)
{
ofy().delete(keys);
}
public T get(Long id) throws EntityNotFoundException
{
return ofy().get(this.clazz, id);
}
public T get(String id) throws EntityNotFoundException
{
return ofy().get(this.clazz, id);
}
public T get(Key<T> key) throws EntityNotFoundException
{
return ofy().get(key);
}
/**
* Convenience method to get all objects matching a single property
*
* @param propName
* @param propValue
* @return T matching Object
*/
public T getByProperty(String propName, Object propValue)
{
Query<T> q = ofy().query(clazz);
q.filter(propName, propValue);
return q.get();
}
public List<T> listByProperty(String propName, Object propValue)
{
Query<T> q = ofy().query(clazz);
q.filter(propName, propValue);
return asList(q.fetch());
}
public List<Key<T>> listKeysByProperty(String propName, Object propValue)
{
Query<T> q = ofy().query(clazz);
q.filter(propName, propValue);
return asKeyList(q.fetchKeys());
}
public T getByExample(T exampleObj)
{
Query<T> queryByExample = buildQueryByExample(exampleObj);
Iterable<T> iterableResults = queryByExample.fetch();
Iterator<T> i = iterableResults.iterator();
T obj = i.next();
if (i.hasNext())
throw new RuntimeException("Too many results");
return obj;
}
public List<T> listByExample(T exampleObj)
{
Query<T> queryByExample = buildQueryByExample(exampleObj);
return asList(queryByExample.fetch());
}
private List<T> asList(Iterable<T> iterable)
{
ArrayList<T> list = new ArrayList<T>();
for (T t : iterable)
{
list.add(t);
}
return list;
}
private List<Key<T>> asKeyList(Iterable<Key<T>> iterableKeys)
{
ArrayList<Key<T>> keys = new ArrayList<Key<T>>();
for (Key<T> key : iterableKeys)
{
keys.add(key);
}
return keys;
}
private Query<T> buildQueryByExample(T exampleObj)
{
Query<T> q = ofy().query(clazz);
// Add all non-null properties to query filter
for (Field field : clazz.getDeclaredFields())
{
// Ignore transient, embedded, array, and collection properties
if (field.isAnnotationPresent(Transient.class)
|| (field.isAnnotationPresent(Embedded.class))
|| (field.getType().isArray())
|| (Collection.class.isAssignableFrom(field.getType()))
|| ((field.getModifiers() & BAD_MODIFIERS) != 0))
continue;
field.setAccessible(true);
Object value;
try
{
value = field.get(exampleObj);
}
catch (IllegalArgumentException e)
{
throw new RuntimeException(e);
}
catch (IllegalAccessException e)
{
throw new RuntimeException(e);
}
if (value != null)
{
q.filter(field.getName(), value);
}
}
return q;
}
// Added, but may not be really useful
public Query<T> query(String filter, String value) {
Query<T> q = ofy().query(clazz).filter(filter, value);
return q;
}
Objectify4 的瓶颈是它没有 DAOBase,因此迁移现有代码不太容易。
如何在使用 Objectify4 功能时获得此模式?
最佳答案
如 Objectify Google Group 中所述,只需删除extends DAOBase
即可。
关于java - 使用 Objectify 4 对象化 GenericDao<T>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12578827/
我正在尝试通过 Java 中的 Objective 查询 App Engine 数据存储。 我在本地存储了一些虚拟数据,但我无法实现按键排序的结果。 这些是类: 父类: @Entity public
我正在使用 objectify 和 Google 云数据存储。 我正在寻找一种方法来获取 parent 的所有 child (没有特定类型或种类)。 我知道祖先函数。 我用过这个 ofy().load
所以我刚刚使用 Google Eclipse 插件在 Eclipse Indigo 中创建了一个新的 GAE 项目,我只有以下 servlet: public class TestServlet ex
我有一个包含@Parent的实体 public class MyObject { @Id private String instID;
我试图找到一种直接的方法将 MKCoordinateSpan 放入一个数组中,而不会将其分解为纬度和经度并将其存储在 NSArray 中。不知道有没有这种方法。 最佳答案 MKCoordinateSp
我的应用程序上有许多不同的“控制元素”:下拉菜单、选项卡、菜单等。在同一页面上,有许多相同的控件。当编写 JavaScript 来处理与每个控件关联的不同事件时,我试图使我的代码尽可能干燥。挑战之一是
我是对象化的新手,所以我知道有些事情出了问题,但我已经按照最佳实践中的描述定义了服务 package com.hmt1.objectify; import com.googlecode.objecti
我正在尝试解析 xml 文档,使用 lxml objectify 和 xpath 提取数据。这是文档的一个片段: 27913.769923 5174.627773
我所说的类型是指允许我执行以下操作的东西。 public class AnyObject{ List list; } 我知道以下行不通。 public class AnyObject{
我有一个 Java + GAE + JPA 项目,我想引入 Objectify 框架以及 JPA,所以我的问题是:在以下情况下是否可以将 JPA(EntityManager、JPQL 等...)与 O
当我们不使用 servlet 或 WEB-INF/web.xml 时,有没有办法使用 objectify?我用玩!使用 Java 的 Framework 2.5.4,我不知道如何处理... 来自此链接
我有一个 HTML 片段,我正在通过 jQuery 对其进行对象化,以便从中提取一些数据。这个片段有一些我不希望浏览器下载的图像资源。有办法吗? 我当前代码的简化版本: var html = 'Bla
我在 AppEngine 中使用 Objectify 和 JAva。我想建模一个多对多关系,其中解析实体具有附加字段,如下所示 @Entity public class Account { p
我想利用 Objectify4 的新功能,但是我的应用程序是构建的并且正在使用版本 3。我的应用程序主要基于 ObjectifyGenericDao 模式构建,并且Objectify4 设计模式与此有
我的 bean 看起来像这样: @Entity public class Fattura { @Id Long id; @NotEmpty String numero;
我有一个问题,但没有找到我想做的事情。我正在将 google Endpoints 与 appengine 和 Objectify 一起使用。我有一个实体回合,需要刚刚创建的实体游戏的 key 。因此,
我一直在关注 Objectify 的 v5 教程,并且我有两个类,其中一个类嵌入另一个类中: @Entity public class User { @Id Long id; priv
我最近使用 App Engine 进行了 objectify,但我在为 objectify 多次注册类时遇到了问题。在Eclipse开发中,每次刷新localhost都会重新编译运行,注册学生的脚本运
我正在使用 Appengine 云端点和对象化。我以前部署过这些端点,现在我正在更新它们,但它不能与 Objectify 一起使用。我已经转移到一台新机器并运行最新的 appengine 1.8.6。
我需要检查xml文件中是否存在某个标签。 例如,我想看看这个代码段中是否存在标签: Hi ... 目前,我正在使用带有错误检查功能的
我是一名优秀的程序员,十分优秀!