我正在學習使用Hibernate。我想知道如何正確地在hibernate中進行併發插入。Hibernate +併發插入(MySQL INSERT IGNORE)
我有一個URL表定義爲:
CREATE TABLE `urls` (
id INT PRIMARY KEY AUTO_INCREMENT,
md5 CHAR(32) UNIQUE,
url TEXT
);
表目的是保持一個映射ID < - >的URL。 md5字段是來自url的md5總和,因爲通常url可以超過1024個字節,這是mysql中UNIQUE約束的限制。
我的問題是關於URL查詢 - > id函數處理併發性。在JDBC實現我做這些步驟:
- SELECT id其中MD5 = MD5(URL);
- if exists,return id,else:
- INSERT IGNORE INTO urls(md5,url)VALUES(MD5(url),url);
- 重試步驟1
即使插入步驟2和3。如何做到這一點與Hibernate之間的請求的URL它的工作原理很好嗎?