当前位置: 首页 > 面试题库 >

JPA Entiy使用同义词而不是表

毛德华
2023-03-14
问题内容

我有一个基于Seam 2.2的Java EE 5 Web应用程序,其中有一堆表通过Hibernate 3.3.3映射到JPA
1.0实体。在开发过程中,它在Tomcat 6,Oracle 10 XE和Windows 7上运行。

现在,运营部门提出了将数据模型拆分为一个模式(该模式是所有数据库对象的所有者myschema)和一个充当应用程序的数据库用户的模式的请求myschema_app。所以我做了以下事情:

  • 创建模式 myschema_app
  • 授予对来自所有必要的表对象权限myschema(经常一和N:M中间表)根据用途和序列(一个或多个的selectinsertupdatedelete),以myschema_app
  • 声明私有同义词,myschema_app以便使用与以前相同的名称并隐藏其他模式的名称前缀
  • 将属性更改hibernate.default_schema为新的架构名称persistence.xml
  • 在Tomcat的数据源定义中更改用户/密码 context.xml

当我将hibernate.hbm2ddl.auto设置为时启动应用程序时,validate当框架尝试创建一个EntityManagerFactory告诉我该表丢失的框架时,我得到一个异常。当我直接在带有myschema_app连接的sql工具中执行select语句时,一切正常。

我知道在另一个表上使用同义词对应用程序是透明的。有谁知道我可能忽略了什么?


问题答案:

我的猜测是hbm2ddl是专门针对表而不是同义词进行搜索的,但是您的应用程序确实应该像表存在于架构中一样工作。尝试删除hbm2ddl选项并测试您的应用程序。

编辑:看来我的猜测是对的:https :
//forum.hibernate.org/viewtopic.php?p=2438033



 类似资料:
  • 问题内容: 这是我的设置: 我的文件在主文件夹内的文件夹中。 这是我的查询: 中的字眼是:美国 ,美国,美国 。 所以这行不通。有趣的是,搜索正常,但当我在文件中输入任何单词时 除外。因此,例如,当我通常在搜索中键入 我们 的内容时,就会得到结果。有了这个分析仪, 我们 什么都不会给我。 我已经完成并连接到ES服务器,但仍然无法正常工作。 编辑 一个示例: 的示例(这来自前端): 编辑#2 : 这

  • 在ANTLR v3中,句法谓词可以用来解决例如悬空的else问题。ANTLR4似乎接受具有类似歧义的语法,但在解析过程中它会报告这些歧义(例如,“line 2:29 reportAmbiguity d=0(e):ambigalts={1,2},input=...”)。它生成一个解析树,尽管存在这些歧义(根据文档,通过选择第一个备选方案)。但如果我想让它选择其他选择,我能做什么呢?换句话说,我如何显

  • 问题内容: 根据elasticsearch参考文档,可以: 可以在索引时间或查询时间应用扩展。每个都有优点(⬆)︎和缺点(⬇)︎。何时使用取决于性能与灵活性。 优点和缺点都是有意义的,对于我的特定用途,我想 在查询时 使用同义词。我的用例是,我希望允许系统中的管理员用户管理这些同义词,而不必在更新时重新索引所有内容。另外,我想不关闭并重新打开索引就这样做。 我认为这是可能的主要原因是此优势: (⬆

  • 问题内容: 编辑:要补充一点,同义词似乎可以与基本的查询字符串查询一起使用。 这将返回新罕布什尔州的所有结果,但对“ nh”的“匹配”查询将不返回结果。 我正在尝试将同义词添加到我的Elastic索引中的位置字段中,这样,如果我对“质量”,“马”或“马萨诸塞州”进行位置搜索,则每次都会得到相同的结果。我将同义词过滤器添加到设置中,并更改了位置映射。这是我的设置: 以及location.region

  • 问题内容: 知道 对于声明为volatile的所有变量,读写是原子的 问题1: 这是否可以理解为 操作是原子的吗? 然后 将变量标记为volatile并不能消除所有同步原子操作的需要,因为仍然可能发生内存一致性错误。 问题2: 我想知道在什么情况下(如果有的话)有可能看到一个已标记的变量,而看不到任何标记为已同步的块的方法(试图访问/修改该变量)? 换句话说,是否需要标记所有需要防止并发修改的变量

  • 我正在制作一个应用程序,其中包括一个用户信息管理部分。用户需要填写10个基本字段进行注册(名字、姓氏、地址等),但管理员也可以定义将包含在注册表中的自定义字段。目前,我用EAV实现了它。我有一个表“users”,其中包含所有10个基本字段作为列,users\u自定义字段(field\u id,field\u name,field\u type),其中包含所有自定义添加的字段,还有一个表“users