Spring Data Jpa 基于外部列表自动创建数据库实体

ui7jx7zq  于 4个月前  发布在  Spring
关注(0)|答案(1)|浏览(61)

Spring Data JPA相对较新。我有一个Spring应用程序的用例,它在启动时从目录中读取CSV:

File1.csv, File2.csv, ..., FileN.csv

字符串
所有CSV都保证具有相同的3列格式,由UNIX时间戳、字符串和整数组成。
对于每一个CSV,应用程序都需要在MySQL数据库中创建一个新表,并将CSV中的所有数据插入表中。由于我不知道N有多大,所以我不能在代码中创建N@Entity类,并将每个CSV行Map到这样一个类的示例中。
此外,基于投票最高的答案here,不可能有一个@Query注解的插入方法,我将表名作为参数传递,所以它看起来不像我可以使用JpaRepository实现接口的传统模式和@Query注解的方法,如下所示:

public interface MyRepository extends JpaRepository<MyEntity, Long>{

     @Modifying
     @Query(value = 
           "insert into SOME_TABLE (name, age, email, status) VALUES (:col1, :col2, 
                  :col3)", nativeQuery = true)
      void insertRow(@Param("col1") Timestamp tstamp, @Param("col2") String name, @Param("col3") Integer status)


在上面的示例代码中,基于链接的答案,看起来我不能将SOME_TABLE作为参数传递给我的查询。
在这种情况下,我还可以使用什么其他模式?我应该直接使用EntityManager字段吗?到目前为止,我只在Spring应用程序中使用过JPARepositories,发现自己被困在这里。

ar5n3qh5

ar5n3qh51#

正如在评论中提到的,最好在没有ORM框架的情况下解决这个问题,因为我事先不知道哪个类Map到哪个表。我能够通过使用适当配置的JdbcTemplate示例来解决这个问题。

相关问题