- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 Multi-Tenancy 数据库架构。有没有办法将一个 Activity 模型用于多个相同的数据库?
一点说明:
我有一个与 foo_table
一起使用的 Foo exdends Model
类。 foo_table
在 schemaA、schemaB、schameC
等中是相同的。我可以使用相同的 Foo
类对来自不同的每个表进行操作吗模式?
最佳答案
如果您拥有具有相同架构的数据库,则完全可以在多个数据库中使用相同的模型。事实上,当人们从一个数据库到另一个数据库进行 ETL 时,通常会这样做。
典型的程序如下所示:
Base.open(/*connection params*/);
List<Person> johns = Person.where("first_name = ?", "John");
Base.close();
Base.open()
打开一个连接并将其附加到当前线程。 Person.where(..)
在线程上找到一个连接,并使用它来选择记录。 Base.close()
在当前线程上查找连接并将其关闭。 此外,ActiveJDBC 模型首次在 JVM 中使用时,将期望在当前线程上建立连接,并将从当前架构中提取元数据。这将确保:
这意味着在任何给定时间,模型都假设它连接到的数据库具有与用于获取元数据相同的结构。
接下来,这可能就是您想要的:
Base.open(/*connection params for DB1*/);
List<Person> johns = Person.where("first_name = ?", "John");
Base.close();
Base.open(/*connection params for DB2*/);
for(Person person:johns){
person.set("first_name", "Bill").setId(null).saveIt();
}
Base.close();
本质上,您将从一个数据库读取数据,但将其保存到另一个数据库。
需要调用person.setId(null)
来确保框架生成插入,而不是更新,请参阅http://javalite.io/surrogate_primary_keys .
关于java - 具有 Multi-Tenancy 数据库结构的 ActiveJDBC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41305012/
我在使用 activejdbc 并且: 我有 3 个模型:City 属于 State 属于 Country,好吗?我这样做: Paginator p = new Paginator(City.clas
今天我发现了一些有趣的库 - ActiveJDBC .它提供了类似 RoR 的 ActiveRecord 接口(interface),我正在考虑替换 Hibernate,但有一个问题 - Active
您正在尝试使用模型,但未找到模型。也许您的项目中没有模型,或者您没有检测模型。预计您在类路径上有一个文件 activejdbc_models.properties Caused by: activej
晚上好,我正在尝试更新现有记录的连接表属性。我有两个模型,一个称为 Records,另一个称为 Shoppingcarts。它们通过名为 records_shoppingcarts 的连接表连接。我向
我想使用activejdbc更新多条记录 Person.update("name = ?, last_name = ?", "name in ?", "Steve", "Johnson", "jaga
我想从多个表中进行选择并使用 ActiveJDBC 将结果转换为 json http://javalite.io/record_selection 我可以执行以下操作,但它当然只会返回模型书中的列,我
我无法急切地加载子类的多态父类。 include 语句似乎没有什么区别。 子类: @BelongsToPolymorphic( parents = {ParentRequest.class},
我有一张表,其中有多个与其他表的多对多关联。表和列的名称有点困惑,所以我必须使用@Many2Many-Annotation。但我不能使用这个注释两次?! 处理这个问题的推荐方法是什么? 最佳答案 抱歉
我正在使用 JavaLite ActiveJDBC 从本地 MySQL 服务器提取数据。这是我的简单 RestController: @RequestMapping(value = "/blogs")
如果理解正确,ActiveJdbc 编译器应该像这样将空心类作为输入 public class Employee extends Model {} 并用数据库元数据中的一些代码填充它。 但是它怎么知道
有没有办法使用 ActiveJDBC 将旧列映射到不同的名称?我的用例涉及旧数据库 - 我有 date_created 和 last_updated 我想将其用作created_at 和 Update
情况是这样的。我有一个包含多个多对多关系的表。 game (id, name, year_release ...) game_price (game_id, price_id, amount) pri
我有 3 个表: person (person_id, person_name), game (game_id, game_name) 和链接表 play(person_id, game_id, sc
我尝试将 ActiveJDBC 与旧数据库一起使用,其中表和列的名称中通常包含连字符。这对于 SELECT 来说没问题,因为我可以引用标识符(例如 Model.where("\"stupid-name
@Override public Long createPost(Request request) { Base.open(); ObjectMapper mapper = new O
我有一个包含 Insert 语句的 SQL 脚本(大约 100 行,将来可能会增加),我想使用 ActiveJDBC 执行该脚本。有办法做到吗? 最佳答案 是的,请参阅:http://javalite
我正在尝试将记录列表转换为某个 Java 对象(因此,将 ActiveJDBC 模型转换为另一个 Java 类),但我希望能够为所有模型调用相同的方法并传递模型类型,例如: private List
我有一个包含一张表的数据库 words ,所以我的Model在 ActiveJDBC 中是 Word . 当数据库中的一行被转换为Word时模型中,我想执行一些额外的操作,例如将一些数据转换为枚举以获
当我尝试使用defineClass(findClass URLClassLoader或 self 实现类加载器)连接我的模型类时,发生异常。 任何其他方法都正在加载我的模型,但不允许动态重载类。 @T
我正在尝试将 ActiveJDBC 与 HSQLDB 结合使用: Base.open("org.hsqldb.jdbc.JDBCDriver", "jdbc:hsqldb:file:queen-db;
我是一名优秀的程序员,十分优秀!