java - 有没有办法从 Hibernate 使用 Postgresql 副本(在表中加载 CSV)?

标签 java hibernate postgresql csv postgresql-copy

在我当前的应用程序中,我使用的是 Hibernate + PostgreSQL。对于特定情况,我需要使用 postgres 中可用的 COPY 功能从 CSV 文件加载数据。有什么方法可以使用 Hibernate 来使用 COPY

Postgres version : 9.4
Hibernate version : 5.0.6

最佳答案

基于@a-horse-with-no-name 评论,我将以下代码放在一起,因为 session.doWork 已被弃用。

SessionFactory factory = HibernateUtil.getSessionFactory();
Session session = factory.openSession();
SessionImplementor sessImpl = (SessionImplementor) session;
Connection conn = null;
conn = sessImpl.getJdbcConnectionAccess().obtainConnection();
CopyManager copyManager = new CopyManager((BaseConnection) conn);
File tf =File.createTempFile("temp-file", "tmp"); 
String tempPath =tf.getParent();
File tempFile = new File(tempPath + File.separator + filename);
FileReader fileReader = new FileReader(tempFile);
copyManager.copyIn("copy testdata (col1, col2, col3) from  STDIN with csv", fileReader );

希望对读者有所帮助。

关于java - 有没有办法从 Hibernate 使用 Postgresql 副本(在表中加载 CSV)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35057346/

相关文章:

java - 如何在 Hibernate 4.3.4.Final 中配置和获取 session ?

hibernate - Spring Data JPA Hibernate 多对多级联删除

带有readObject的Java神秘EOF异常

java - 如何使用 thrift 实现客户端/服务器对象与另一个相同类型的对象之间的通信

java - 如何过度设计 shell

java - 如何配置intellij idea使用hibernate持久化工具并从外部jar文件读取映射文件

postgresql - 当 Hawq 投诉 : missing data for column "SoldToAddr2" 时如何解决错误

java - 连接到 Postgresql 错误

sql - postgres : Delete rows that has foreign key while not deleting data of the foreign key table

java - 高效的Java列表合并算法