Помоги мне.
Почему коллекция в сущности изменяется после транзакции?
Моя сущность:
@Entity
class Entity(
@Id
val uuid: UUID,
@OneToMany(cascade = [CascadeType.PERSIST, CascadeType.REMOVE])
@JoinTable(
name = "entities_items",
joinColumns = [JoinColumn(name = "entity_uuid")],
inverseJoinColumns = [JoinColumn(name = "item_uuid")]
)
val items: MutableList<Item>
)
Моя проверка:
@SpringBootTest
internal class EntityTest {
@Autowired
lateinit var entityRepository: EntityRepository
@Autowired
lateinit var transactionManager: PlatformTransactionManager
@Test
fun will_added_item() {
val entityBefore = entityRepository.findById(entityId).get()
// entityBefore.items.size == 0
TransactionTemplate(transactionManager).execute { _ ->
val entity = entityRepository.findById(entityId).get()
entity.items.add(item)
}
// entityBefore.items.size == 1 <-- ???
val entityAfter = entityRepository.findById(entityId).get()
}
}
Интересно, если я добавлю любой вызов в коллекцию до транзакции, все будет хорошо.
Spring Boot + Hibernate + JUnit