Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java AppEngine实体的审核字段_Java_Google App Engine_Objectify - Fatal编程技术网

Java AppEngine实体的审核字段

Java AppEngine实体的审核字段,java,google-app-engine,objectify,Java,Google App Engine,Objectify,寻找在AppEngine for Java(通过objectify)中维护实体基本审计字段的有效方法的建议。@PrePersist属性看起来是各种日期字段(dateCreated、dateModified、dateDeleted)的一个不错的选项,但我也希望存储创建、修改、删除实体的用户的ID。这最好留给数据访问层处理吗?IMHO@PrePersist是执行此操作的好地方 您可能还想使用-这样您可以拥有一个包含所有审核字段的基类并执行保存。所有需要审计的类都会扩展这个基类。IMHO@PrePer

寻找在AppEngine for Java(通过objectify)中维护实体基本审计字段的有效方法的建议。@PrePersist属性看起来是各种日期字段(dateCreated、dateModified、dateDeleted)的一个不错的选项,但我也希望存储创建、修改、删除实体的用户的ID。这最好留给数据访问层处理吗?

IMHO
@PrePersist
是执行此操作的好地方


您可能还想使用-这样您可以拥有一个包含所有审核字段的基类并执行保存。所有需要审计的类都会扩展这个基类。

IMHO
@PrePersist
是执行此操作的好地方


您可能还想使用-这样您可以拥有一个包含所有审核字段的基类并执行保存。所有需要审核的类都会扩展这个基类。

如果您需要存储的记录不仅仅是您提到的日期,那么您可能需要创建一个审核对象,并使用@Embed将其存储在正在审核的对象中。然后使用@PrePersist更新此对象。这将为您提供一个跨对象的一致审核框架。

如果您需要存储的记录不仅仅是您提到的日期,您可能希望创建一个审核对象,并使用@Embed将其存储在您正在审核的对象中。然后使用@PrePersist更新此对象。这将为您提供跨对象的一致审核框架。

如果我使用\@PrePersist,如何获得用户ID?我们必须访问它的唯一方式是通过用户检索服务,该服务从HttpSession获取它。将某种服务注入域实体以获取此信息是否是常见的做法?是的。您可以从会话中获取,也可以从cookie中读取。这完全取决于你的申请。通常,应用程序的DAO层会有一个像doUpdate(User,Entity)这样的方法。我们有一个DAO层,但我不确定我是否喜欢将用户传递给每个doUpdate方法的想法。DAO层不应该本质上知道怎么做吗?如果你这样写的话。。。但它必须从某个地方获取用户,在本例中是一个httpsession或您传入的变量。您可以将与用户的会话附加到线程本地对象,如果您愿意,也可以通过这种方式获得会话,但这取决于您的管理。Objectify没有“用户”的概念,Objectify4甚至没有dao对象。所以说“dao层本身不应该知道如何做到这一点”是有缺陷的。如果我使用\@PrePersist,我如何获得用户ID?我们必须访问它的唯一方式是通过用户检索服务,该服务从HttpSession获取它。将某种服务注入域实体以获取此信息是否是常见的做法?是的。您可以从会话中获取,也可以从cookie中读取。这完全取决于你的申请。通常,应用程序的DAO层会有一个像doUpdate(User,Entity)这样的方法。我们有一个DAO层,但我不确定我是否喜欢将用户传递给每个doUpdate方法的想法。DAO层不应该本质上知道怎么做吗?如果你这样写的话。。。但它必须从某个地方获取用户,在本例中是一个httpsession或您传入的变量。您可以将与用户的会话附加到线程本地对象,如果您愿意,也可以通过这种方式获得会话,但这取决于您的管理。Objectify没有“用户”的概念,Objectify4甚至没有dao对象。所以说“dao层本质上不应该知道如何做到这一点”是有缺陷的。