From 00eb3f7aca10a8374e066fcd4fb8a22ea693eb82 Mon Sep 17 00:00:00 2001 From: Tour Date: Sun, 7 Dec 2025 12:59:22 +0100 Subject: [PATCH] goog --- src/main/java/auctiora/DatabaseService.java | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/main/java/auctiora/DatabaseService.java b/src/main/java/auctiora/DatabaseService.java index 9e3a40b..8f056d6 100644 --- a/src/main/java/auctiora/DatabaseService.java +++ b/src/main/java/auctiora/DatabaseService.java @@ -443,8 +443,13 @@ public class DatabaseService { ps.setLong(10, Instant.now().getEpochSecond()); ps.executeUpdate(); } catch (SQLException e) { - // If it fails due to UNIQUE constraint on url, try updating by url instead - if (e.getMessage().contains("UNIQUE constraint failed: auctions.url")) { + // Handle both PRIMARY KEY and URL constraint failures + String errMsg = e.getMessage(); + if (errMsg.contains("UNIQUE constraint failed: auctions.auction_id") || + errMsg.contains("UNIQUE constraint failed: auctions.url") || + errMsg.contains("PRIMARY KEY constraint failed")) { + + // Try updating by URL as fallback (most reliable unique identifier) var updateByUrlSql = """ UPDATE auctions SET auction_id = ?, @@ -470,7 +475,11 @@ public class DatabaseService { int updated = ps.executeUpdate(); if (updated == 0) { - log.warn("Could not insert or update auction with url={}, auction_id={}", auction.url(), auction.auctionId()); + // Auction doesn't exist by URL either - this is unexpected + log.warn("Could not insert or update auction with url={}, auction_id={} - constraint violation but no existing record found", + auction.url(), auction.auctionId()); + } else { + log.debug("Updated existing auction by URL: {}", auction.url()); } } } else {