Хочу узнать подробности JAP Repotitoty.
Я создал класс обслуживания, классы eintity и классы репозитория, как показано ниже (написано на kotlin), и исключил метод обновления ItemService #.
И item1, и item2 были обновлены при выполнении метода save () item2Repository.
@Service
class ItemService(@Autowired private val item1Repository: Item1Repository, @Autowired private val item2Repository: Item2Repository) {
fun update(id: Long) {
val item1 = item1Repository.findById(1).get()
item1.name = "updated!"
val item2 = item2Repository.findById(1).get()
item2.name = "updated!"
// item1 and item2 were updated.
item2Repository.save(item2)
}
}
@Entity
@Table(name = "item1")
data class Item1(
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
val id: Long = 0,
@Column
var name: String = ""
)
@Entity
@Table(name = "item2")
data class Item2(
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
val id: Long = 0,
@Column
var name: String = ""
)
interface Item1Repository: JpaRepository<Item1, Long>
interface Item2Repository: JpaRepository<Item2, Long>
Почему был обновлен item1?
Я думаю, что и item1, и item2 управляются в контексте постоянства при выполнении методов findById.
Будут ли сохранены все объекты, существующие в контексте постоянства, когда я выполню метод сохранения репозитория jpa?