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,发现自己被困在这里。
1条答案
按热度按时间ar5n3qh51#
正如在评论中提到的,最好在没有ORM框架的情况下解决这个问题,因为我事先不知道哪个类Map到哪个表。我能够通过使用适当配置的
JdbcTemplate
示例来解决这个问题。