Jpa 设置Vertica数据库的默认架构
我正在使用Play构建一个web应用程序!以Vertica数据库作为后端。Vertica的JDBC连接字符串包含服务器和数据库名称,但我的表在特定的模式下(比如“dev_myschema”)。因此,我应该将我的表称为“dev_myschema.mytable”。在生产模式中(比如“prod_myschema”)也有所有这些表的真实数据的精确副本 我想在配置文件中设置这个模式名,以便在这两个模式之间轻松切换。现在,我在助手类中有一个getConnection方法,它执行DB.getConnection(),并将配置的模式设置为该连接对象的默认模式。但是,在其他模型类中,它与实体注释(@Entity@Table(name=dev_myschema.mytable))一起被提及时,这一点并没有帮助 是否有一种方法可以在配置文件中指定模式名称,并让连接方法和模型注释读取该名称Jpa 设置Vertica数据库的默认架构,jpa,playframework,vertica,Jpa,Playframework,Vertica,我正在使用Play构建一个web应用程序!以Vertica数据库作为后端。Vertica的JDBC连接字符串包含服务器和数据库名称,但我的表在特定的模式下(比如“dev_myschema”)。因此,我应该将我的表称为“dev_myschema.mytable”。在生产模式中(比如“prod_myschema”)也有所有这些表的真实数据的精确副本 我想在配置文件中设置这个模式名,以便在这两个模式之间轻松切换。现在,我在助手类中有一个getConnection方法,它执行DB.getConnecti
谢谢。据我所知(我刚刚浏览了4.1.7文档),目前还无法将架构设置为默认架构。根据sql指南,默认架构是在搜索树中找到的第一个架构。也许你可以利用这个漏洞,确保首先找到你的副本。如果我使用我的开发模式,我处理这个问题的方法是执行“设置搜索路径”命令。因此,创建Vertica连接对象后,立即执行以下命令:
"set search path to dev_myschema"
在我的应用程序代码中,我只是让Vertica对象检查一个环境/配置变量,如果存在“dev schema”设置,它会在建立连接时执行该语句。我的生产配置没有该设置,因此在这种情况下,它将只使用默认模式,而不会产生每次执行该语句的额外开销。Eugene几乎正确,但缺少下划线。设置默认架构的正确Vertica SQL语法为:
set search_path to dev_myschema
正如Eugene所建议的,如果您使用的是低级JDBC,那么在创建连接对象后,您就可以执行以下操作:
conn.createStatement().executeUpdate("set search_path to " + schemaName);
在7.0中,管理员可以通过发出以下命令将其设置为用户级别:
alter user user_name search_path schema1,schema2;
我想让jpa和vertica合作。您会发布您的持久性和数据源配置吗?我不能让它工作。“Laule-我用它来播放框架,并配置它认为Vista数据库像PASGRESS方言。FWIW,这里是配置参数
jpa.dialogue=org.hibernate.dialogue.PostgreSqlDialogue
在两周前使用了一种基于postgres的自定义方言。hbm2ddl不适用于我的(旧)模型,因为它使用了vertica不支持的数据类型(默认为smallint到int4,vertica不知道int4…)。还是谢谢你的回答。