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,但发现自己陷入了困境。
JdbcTemplate
实例来解决这个问题。