Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.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
如何通过动态EJB-QL从独立缓存加载JPA Entite,而不影响数据库_Jpa_Ejbql - Fatal编程技术网

如何通过动态EJB-QL从独立缓存加载JPA Entite,而不影响数据库

如何通过动态EJB-QL从独立缓存加载JPA Entite,而不影响数据库,jpa,ejbql,Jpa,Ejbql,我有一个JPA实体,它是通过用户可以相当自由地配置的动态EJBQL查询加载的。随之而来的是一个新的要求:只有当用户特定的查询返回这些新实体时,才允许用户创建新实体。因此,我认为我需要实例化一个JPA实体,动态创建一个EJB查询,并确定如果该实体存在于数据库中,该查询是否会加载该实体 我怎么能这么做?例如,是否有一个独立的JPA缓存,这样我就可以将新的JPA实体推送到缓存中,并用我的查询对其进行查询,而不必访问数据库?您只需将新实体插入数据库,执行查询,查看是否找到该实体,如果找不到则回滚(如果您

我有一个JPA实体,它是通过用户可以相当自由地配置的动态EJBQL查询加载的。随之而来的是一个新的要求:只有当用户特定的查询返回这些新实体时,才允许用户创建新实体。因此,我认为我需要实例化一个JPA实体,动态创建一个EJB查询,并确定如果该实体存在于数据库中,该查询是否会加载该实体


我怎么能这么做?例如,是否有一个独立的JPA缓存,这样我就可以将新的JPA实体推送到缓存中,并用我的查询对其进行查询,而不必访问数据库?

您只需将新实体插入数据库,执行查询,查看是否找到该实体,如果找不到则回滚(如果您不想回滚,也可以删除同一事务中的实体)。

是的,我知道,但在数据库中插入不应该插入的实体似乎并不“正确”——此外,查询可能会加载很多实体,而不仅仅是新的实体,因此效率也不是很高。但这是一个后备方案B:-)