您何时在 Objectify for GAE 中注册课程?

2024-01-04

所以这可能是一个愚蠢的问题,但是你什么时候注册课程:

ObjectifyService.register( User.class );

目前,我正在一个类似接口的类的构造函数中执行此操作,我在其他类中使用该类来简化专门针对我的应用程序的数据存储的使用。但是,我收到此错误:

尝试注册类型“用户”两次

所以,我想我的问题是您在 Objectify 中注册类的频率和具体时间是什么?

Thanks!

附:这是我的整个班级:

import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import java.util.Iterator;

import javax.crypto.BadPaddingException;
import javax.crypto.IllegalBlockSizeException;
import javax.crypto.NoSuchPaddingException;
import javax.persistence.Id;

import com.googlecode.objectify.Objectify;
import com.googlecode.objectify.ObjectifyService;
import com.googlecode.objectify.annotation.Indexed;
import com.googlecode.objectify.annotation.Unindexed;

public class UsersService {

    Objectify ojy;

    public UsersService(){
        ObjectifyService.register( User.class );
        ojy = ObjectifyService.begin();
    }

    public void regUser(String email, String password, String firstName, String lastName){
        //TODO: Check syntax if email
        //TODO: store encrypted password
    }

    public void regUser(String email, String password, String firstName){
        regUser(email, password, firstName, null);
    }

    public void regUser(String email, String password){
        regUser(email, password, "", "");
    }

    public boolean checkFor(Long acc_id){
        User checked_user = ojy.find(User.class, acc_id);
        if(checked_user == null){
            return false;
        }else{
            return true;
        }
    }

    public User getUser(String email, String password) throws InvalidKeyException, IllegalBlockSizeException, BadPaddingException, NoSuchAlgorithmException, NoSuchPaddingException{
        String pass_enc = MyUtils.getEncrypted(password);
        Iterable<User> users = ojy.query(User.class).filter("email", email).filter("password", pass_enc);
        Iterator<User> iter = users.iterator();
        if(iter.hasNext()){
            return iter.next();
        }else{
            return null;
        }
    }

}

Update

这是最佳实践解决方案:

使用您自己的服务, 这可以保证您的实体在使用 Objectify 之前已注册,但不一定会影响不访问数据存储的请求的应用程序启动。

import com.googlecode.objectify.Objectify;
import com.googlecode.objectify.ObjectifyFactory;
import com.googlecode.objectify.ObjectifyService;


public class OfyService {
    static {
        ObjectifyService.register(User.class);
    }

    public static Objectify ofy() {
        return ObjectifyService.begin();//prior to v.4.0 use .begin() , 
                                        //since v.4.0  use ObjectifyService.ofy();
    }

    public static ObjectifyFactory factory() {
        return ObjectifyService.factory();
    }

}

然后像这样使用它:

public User createUser(User pUser) {

    Objectify objectify = OfyService.ofy();
    objectify.put(pUser);

    return pUser;
}

原始答案(最好使用上面的代码):

你应该在你的类中这样做,只需放置一个静态块,如下所示:

static{
    ObjectifyService.register( User.class );
}

p.s,你也看看objectify的最佳实践

http://code.google.com/p/objectify-appengine/wiki/BestPractices http://code.google.com/p/objectify-appengine/wiki/BestPractices

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

您何时在 Objectify for GAE 中注册课程? 的相关文章

随机推荐

  • 如何编写用于文件上传的 Node.js Express API?

    网上有很多关于 Node js Express 框架文件上传的示例 但大多数人都在使用multer 所有这些都从表单加载文件 但我的情况有所不同 我的应用程序将从手机中选择图像并上传到服务器 通过使用 Ionic 中的 cordova fi
  • 定义自定义 D3 符号

    我正在尝试在 D3 中开发自定义形状 但我对 Javascript 不太了解 并且不确定该形状是什么D3 形状 https github com d3 d3 shape图书馆正在幕后做事 特别是 我不确定什么是default函数于符号 js
  • Kurento安装未满足的依赖关系

    我正在尝试在 Ubuntu Trusty 14 04 中安装最新稳定版本的 Kurento V 6 0 不幸的是 我收到了陌生人的消息 Output The following packages have unmet dependencie
  • 为什么 DisplayFormat DataFormatString 不起作用?

    我的视图模型中有一个属性 如下所示 Editable false Display Name Date DisplayFormat DataFormatString 0 yyyy MM dd ApplyFormatInEditMode tru
  • 验证:根据父模型的属性值包含在轨道中

    我有两个型号Project和 任务 其中项目有很多任务并且任务属于项目 现在在我的Task模型我正在使用项目中的属性对字段进行验证 validates effort inclusion gt 1 project effort 这会导致错误m
  • 在java中实现一个简单的泛型函数时编译错误?

    这是我的代码 public class ArrayAlgorithm public static void main String args TODO Auto generated method stub return public sta
  • pymongo - 消息长度大于服务器最大消息大小

    线for doc in collection find is timeline valid True 给出消息长度错误 如何获取所有集合而不出现错误 我知道关于find limit 但我不知道如何使用它 Code from openpyxl
  • 从 MySQL JSON 数组中获取不同的值

    我得到了一个 MySQL 数据表 其中包含一个包含值列表的 JSON 列 约束表 ID CONSTRAINT TYPE CONSTRAINT VALUES 2 testtype 801 751 603 753 803 我想要的是一个不同的
  • 使用 PHP 客户端为 Google Calendar API 设置推送通知

    我想设置Google 日历 API 的推送通知 https developers google com google apps calendar v3 push每当 Google 日历 api 上的特定资源发生更改时 我的服务器都会收到通知
  • c#:为什么使用 DLL?

    我正在开发一个大型 C 项目 我想知道为什么人们在他们的应用程序中使用 DLL 我知道 dll 文件 如果我错了 请更正 包含一些函数 但为什么我们不将这些函数放入我们的主 c 应用程序中呢 Thanks 大部分都在答案中总结了对于这个问题
  • H.264 over RTP - 识别 SPS 和 PPS 帧

    我有来自 IP 摄像机的原始 H 264 流 封装在 RTP 帧中 我想将原始 H 264 数据放入文件中 以便我可以将其转换为ffmpeg 因此 当我想将数据写入原始 H 264 文件时 我发现它必须如下所示 00 00 01 SPS 0
  • 由于索引导致记录数量增加,SQLite 插入速度变慢

    原问题 背景 众所周知 SQLite需要微调 https stackoverflow com questions 1711631 how do i improve the performance of sqlite实现大约 50k 插入 秒
  • 何时在表单 ID 前添加冒号前缀

    我有两种形式的两个数据表 forma and formg 每个表格里面都有一个p dataTable groupsa and groupsg 在每个数据表中都有一个显示图像的自定义列 h graphicImage 称为fava and fa
  • jQuery mouseoverIntent 插件在父级悬停时显示/隐藏 div,但悬停时保持显示

    我有一个按钮 当鼠标悬停在其上方时 会在其正下方显示一个 div 当悬停 鼠标悬停 时 div 消失 这一切都运行良好 但现在我需要将 div 保留在按钮下方 显示用户是否将鼠标悬停在该 div 上 以与 div 内的内容进行交互 目前这是
  • 如何编写向上一层然后向下进入另一个目录的路径

    我正在尝试打开一个文件Java程序 比如Program java 使用相对路径 我有两个目录如下 ProjectWork Business Scenarios SC01 txt ProjectWork SourceCode Program
  • 获取 MPMediaItem 添加到 iTunes 库的日期

    是否可以 我在 MPMediaItemProperty 字符串中没有找到类似的内容 也许私有API 查看文档 方法列表没有对应的字段 这让您可以选择延长MPMediaItem与一个新的MPMediaItemProperty自己填写 添加日期
  • C++ 从子目录加载 DLL?

    我是 C 的 隐藏 黑暗地方 的新手 我想知道如何从当前可执行文件运行的不同目录或子目录中加载 dll 文件 Ex MyAppDirectory MyApp exe SomeDLL dll AnotherDLL dll SubDirecto
  • Ninject:使用 NSubstitute 自动模拟?

    任何人都可以帮忙 我在使用 Ninject 和 NSubstitute 之间可用的自动模拟时遇到问题 实际上该包是一个名为 ninject 的打包包Ninject MockingKernel NSubstitute这应该允许我使用 Ninj
  • 复制后的 std::vector 容量

    vector operator 会改变向量容量吗 如果是这样 怎么办 Vector的复制构造函数是否复制容量 我查看了文档但找不到具体的答案 它依赖于实现吗 向您保证的是 该向量有足够的容量来存储其元素 明显地 在当前容量已满之前 向量不会
  • 您何时在 Objectify for GAE 中注册课程?

    所以这可能是一个愚蠢的问题 但是你什么时候注册课程 ObjectifyService register User class 目前 我正在一个类似接口的类的构造函数中执行此操作 我在其他类中使用该类来简化专门针对我的应用程序的数据存储的使用