根据外部列表自动创建数据库实体

问题描述 投票:0回答:1

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

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

所有 CSV 都保证具有相同的 3 列格式,由 UNIX 时间戳、字符串和整数组成。

对于每一个 CSV,应用程序都需要在 MySQL 数据库中创建一个新表,并将 CSV 中的所有数据插入表中。由于我事先不知道

N
有多大,因此我无法进入代码并创建
N
@Entity
类并将每个 CSV 行映射到此类的实例中。

此外,根据投票最高的答案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,但发现自己陷入了困境。

    

java spring spring-boot spring-data-jpa entitymanager
1个回答
0
投票
JdbcTemplate

实例来解决这个问题。

    

© www.soinside.com 2019 - 2024. All rights reserved.