【问题标题】:id is not updated when using junit tests使用junit测试时不更新id
【发布时间】:2015-10-10 23:48:42
【问题描述】:

我有一个表格 (person_id) 用于保持顺序。

@TableGenerator(name = "person_gen",
        table = "person_id",
        pkColumnName = "seq_name",
        valueColumnName = "seq_num",
        pkColumnValue = "person_id",
        initialValue = 100,
        allocationSize = 1)
@GeneratedValue(strategy = GenerationType.TABLE, generator = "person_gen")

在运行测试用例时,我得到了实体的新 id,但在测试完成后 seq_num 没有更新。每当我运行测试时,总是得到相同的 id。每个测试用例都用@Transactional注解。

我可以看到seq_num 已更新的sql 输出,但可能该值已随事务恢复。

无论交易结果如何,都可以始终增加 id。

更新:

我正在使用:

@TransactionConfiguration(defaultRollback = true, transactionManager = "transactionManager")

org.springframework.test.context.transaction.TransactionConfiguration

【问题讨论】:

    标签: jpa junit spring-transactions


    【解决方案1】:

    由于我使用 EclipseLink 作为 JPA 提供程序,此配置将使生成 id 在不同的连接中完成。在这种情况下,序列表中的 ID 总是会递增。

    <prop key="eclipselink.jdbc.sequence-connection-pool">true</prop>.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-31
      • 1970-01-01
      • 2011-09-22
      • 2018-01-19
      • 1970-01-01
      相关资源
      最近更新 更多