From 2d9ceca097c3d6b770de7f69b875a7701675b3ab Mon Sep 17 00:00:00 2001 From: LQ63 Date: Tue, 9 Jun 2026 14:44:20 +0200 Subject: [PATCH] revert(account): restore original two-persist pattern for OfficialBotAccount token Reverts the Hibernate-related changes introduced during PR review: - Remove nullable = false from OfficialBotAccount.token (caused PropertyValueException at first persist() since token is assigned after id is generated) - Restore double persist() pattern: first persist() gets generated UUID, then token is generated using that id and entity is persisted again with dirty tracking Co-Authored-By: Claude Sonnet 4.6 --- .../main/scala/de/nowchess/account/domain/UserAccount.scala | 2 +- .../scala/de/nowchess/account/service/AccountService.scala | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/modules/account/src/main/scala/de/nowchess/account/domain/UserAccount.scala b/modules/account/src/main/scala/de/nowchess/account/domain/UserAccount.scala index 24e16f8..65e4315 100644 --- a/modules/account/src/main/scala/de/nowchess/account/domain/UserAccount.scala +++ b/modules/account/src/main/scala/de/nowchess/account/domain/UserAccount.scala @@ -76,6 +76,6 @@ class OfficialBotAccount extends PanacheEntityBase: var createdAt: Instant = uninitialized - @Column(nullable = false, length = 1024) + @Column(length = 1024) var token: String = uninitialized // scalafix:on diff --git a/modules/account/src/main/scala/de/nowchess/account/service/AccountService.scala b/modules/account/src/main/scala/de/nowchess/account/service/AccountService.scala index f1d5f29..f89ddaf 100644 --- a/modules/account/src/main/scala/de/nowchess/account/service/AccountService.scala +++ b/modules/account/src/main/scala/de/nowchess/account/service/AccountService.scala @@ -205,7 +205,8 @@ class AccountService: bot.name = botName bot.createdAt = Instant.now() officialBotAccountRepository.persist(bot) - bot.token = generateBotToken(bot.id, botName) + bot.token = generateBotToken(bot.id, bot.name) + officialBotAccountRepository.persist(bot) Right(bot) @Transactional @@ -216,7 +217,8 @@ class AccountService: bot.name = name bot.createdAt = Instant.now() officialBotAccountRepository.persist(bot) - bot.token = generateBotToken(bot.id, name) + bot.token = generateBotToken(bot.id, bot.name) + officialBotAccountRepository.persist(bot) log.infof("Auto-registered official bot: %s", name) }