gpt4 book ai didi

java - 使用 EntityManager NativeQuery 生成自动增量数字并将数据插入 Oracle DB

转载 作者:行者123 更新时间:2023-12-01 16:52:02 25 4
gpt4 key购买 nike

我正在使用 Spring 开发 ETL 应用程序。我有要以 String 类型插入的数据,并希望使用entityManager.createNativeQuery(query).executeUpdate() 加载数据我这里没有任何实体,因为 ETL 应用程序可用于任何数据源。

演示问题:

源数据可以是任何有效的 JSON,例如 {name: "John",age: 31, city: "New York"}

应用程序本身从这里生成 INSERT 查询,如下所示:INSERT INTO TABLE_NAME(姓名、年龄、城市)值('John',31,'New York')

我正在使用 @PersistenceContext EntityManager em 连接到 Oracle 12c。因此,运行em.createNativeQuery(query).executeUpdate 为我完成了这项工作。

但是,当我尝试在目标表中使用自己的索引时,我无法找出正确的方法。

我尝试使用 KeyHolder 类,但它适用于 JdbcTemplate 而不是 EntityManager

KeyHolder keyHolder = new GeneratedKeyHolder();

我无法使用

em.getEntityManagerFactory().getPersistenceUnitUtil().getIdentifier(entity);

因为我无法在这里创建实体。

在这里创建自己的唯一 key 的正确方法是什么?

最佳答案

我建议切换到 JdbcTemplate,因为它看起来您并没有使用 JPA 的任何功能。

如果您坚持使用EntityManager,我认为您必须首先使用SELECT my_seq.nextval FROM DUAL选择序列号,然后将其用于插入语句。

关于java - 使用 EntityManager NativeQuery 生成自动增量数字并将数据插入 Oracle DB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61666597/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com