Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/323.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 具有多租户数据库结构的ActiveJDBC_Java_Orm_Activejdbc_Javalite - Fatal编程技术网

Java 具有多租户数据库结构的ActiveJDBC

Java 具有多租户数据库结构的ActiveJDBC,java,orm,activejdbc,javalite,Java,Orm,Activejdbc,Javalite,我有一个多租户数据库体系结构。有没有办法对多个相同的数据库使用一个活动模型 稍微澄清一下: 我有一个Foo-exdends模型类,它与Foo\u表一起工作。foo_表在schemaA、schemaB、schameC等中是相同的。我可以使用相同的foo类从不同的模式对这些表中的每一个表进行操作吗?如果您有具有相同模式的数据库,则可以在多个数据库中完全使用相同的模型。事实上,当人们从一个数据库到另一个数据库进行ETL时,通常会这样做 典型的程序如下所示: Base.open(/*connection

我有一个多租户数据库体系结构。有没有办法对多个相同的数据库使用一个活动模型

稍微澄清一下:


我有一个
Foo-exdends模型
类,它与
Foo\u表
一起工作。
foo_表
schemaA、schemaB、schameC
等中是相同的。我可以使用相同的
foo
类从不同的模式对这些表中的每一个表进行操作吗?

如果您有具有相同模式的数据库,则可以在多个数据库中完全使用相同的模型。事实上,当人们从一个数据库到另一个数据库进行ETL时,通常会这样做

典型的程序如下所示:

Base.open(/*connection params*/);
List<Person> johns = Person.where("first_name = ?", "John");
Base.close();
基本上,您将从一个数据库读取数据,但会将其保存到另一个数据库


需要调用
person.setId(null)
,以确保框架生成insert而不是update,请参见。

如果您的数据库具有相同的架构,则可以在多个数据库中完全使用相同的模型。事实上,当人们从一个数据库到另一个数据库进行ETL时,通常会这样做

典型的程序如下所示:

Base.open(/*connection params*/);
List<Person> johns = Person.where("first_name = ?", "John");
Base.close();
基本上,您将从一个数据库读取数据,但会将其保存到另一个数据库


需要调用
person.setId(null)
,以确保框架生成insert而不是update,请参见。

因此,如果我理解正确,我的问题是,第一次连接到架构时,该架构并不包含模型引用的所有表。这是因为我访问的第一个模式是我用来登录所有用户的schema_auth。我想如果我也在schema_auth中创建我的所有表,那么它就会工作。有更优雅的解决方案吗?我是否可以在需要时根据当前连接重新加载DB元数据?您在原始问题中没有提到任何问题。元数据只读取一次,之后不能重新加载。对于要操作的模型,所有模式都需要有相同的表。我没有提到它,因为我不知道元数据只能读取一次,所以我没有意识到它是相关信息。谢谢你的帮助。我现在明白了,我会更新我的模式,它会工作的!我刚刚想到,这个页面与您的理解相关:因此,如果我理解正确,我的问题是,第一次连接到模式时,该模式并不包含模型引用的所有表。这是因为我访问的第一个模式是我用来登录所有用户的schema_auth。我想如果我也在schema_auth中创建我的所有表,那么它就会工作。有更优雅的解决方案吗?我是否可以在需要时根据当前连接重新加载DB元数据?您在原始问题中没有提到任何问题。元数据只读取一次,之后不能重新加载。对于要操作的模型,所有模式都需要有相同的表。我没有提到它,因为我不知道元数据只能读取一次,所以我没有意识到它是相关信息。谢谢你的帮助。我现在明白了,我会更新我的模式,它会工作的!我刚刚想到,本页与您的理解相关: