0
まだ処理されていないテーブルから1つのアイテムIDを返す必要があります(指定された時点では複数の使用が可能ですが、要求ごとに一意のIDを返す必要があります) 。Springブート+ JPA + Hibernate + PostgreSQL JPAネイティブクエリを使用したpessimistic_read
私はJPAネイティブクエリに私はステータスを変更しています
@Lock(LockModeType.PESSIMISTIC_READ) @QueryHints({@QueryHint(name = "javax.persistence.lock.timeout", value ="5000")}) @Query(value = "SELECT id FROM item WHERE name->> 'name'=:name AND city->> 'city'=:city LIMIT 1",nativeQuery = true) public String findByStateAndStatus(@Param("name") String name, @Param("city") String city);
ポストを使用してDBから最初のレコードを取得していますID
上記のシナリオでは、「無効なロックの使用」という例外がスローされます(ネイティブ・クエリーをサポートしておらず、サプts crud operations)を実行します。
競合状態でUPDATEおよびSKIPロック行のSELECTに対してネイティブクエリを使用してPESSIMISTIC_READを使用すると、ヘルプが必要です。