java - 将hibernate域对象插入到不同的数据库?

标签 java hibernate groovy

我想将特定表的所有数据从数据库1复制到数据库2。在我的系统中,我可以通过 hibernate 访问 database1 中的域对象,我不必转换数据结构。我只有一个到数据库2的 native jdbc连接。

使这个常规脚本非常普遍地支持我拥有的各种域对象的最佳解决方案是什么?所以这个脚本只获取我的域对象和数据库的连接字符串并插入所有数据?

最佳答案

我遇到了类似的问题,我需要能够将每个 Hibernate 实体导出到 SQL 脚本,换句话说,如果您有一个具有两个属性(用户名、密码)的 Person 对象,您应该能够生成 SQL 插入语句该对象的。

Person.用户名 = x Person.password = y

然后该过程将从该对象中提取等效的 SQL 插入并创建类似以下内容的内容:

插入人(用户名,密码)值('x','y');

然而,我的解决方案基于这样一个事实:映射是使用 hibernate 注释而不是 XML 配置完成的,如果这是您的情况,您可以在 1 或 2 个工作日内实现相同的效果,只需阅读注释即可。请注意,您必须执行额外的步骤,即在另一个数据库上执行结果 SQL 插入。

仅供引用:此方法 toSQL() 已添加到每个 Hibernate 实体扩展的父类(super class) (AbstractHibernateEntity) 中,因此调用它是最简单的事情。

这是一个复杂的解决方案,也是最通用的解决方案,但是,如果您只需要将一个表从数据库复制到另一个表,我建议简单地使用简单的 JDBC 调用,避免使您的生活变得复杂;-)

问候。

关于java - 将hibernate域对象插入到不同的数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2093664/

相关文章:

grails - 在 Groovy/Grails 中设置 new URL(...).text 的超时

java - 线程 "main"java.lang.NullPointerException Java GUI 中出现异常

java - 有没有办法在maven中声明两个nexus url来搜索单个 Artifact

java - 用 Ant 脚本替换正则表达式

hibernate - 使用 Struts 存储 Hibernate SessionFactory

java - 从 Gradle 执行 Groovy 脚本而不编译 Java

Java Mac 应用程序失败,错误代码为 -10810

java - 如何解决无法获取隔离的 JDBC 连接的问题?

java - 为什么@Column 可能不适用于方法?

groovy - logback 需要 groovy.jar 还是 groovy-all.jar?