有没有办法从 Hibernate 使用 Postgresql 复制(在表中加载 CSV)?

Ket*_*etu 3 java csv postgresql hibernate postgresql-copy

在我当前的应用程序中,我使用 Hibernate + PostgreSQL。对于特定情况,我需要使用COPYpostgres 中提供的功能从 CSV 文件加载数据。有什么办法可以使用COPYHibernate吗?

Postgres version : 9.4
Hibernate version : 5.0.6
Run Code Online (Sandbox Code Playgroud)

Ket*_*etu 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 );
Run Code Online (Sandbox Code Playgroud)

希望这对读者有所帮助。