私はもともとこれを別の場所に投稿しました。
あらすじ:
いくつかの情報を含むログ ファイルを読み取ります。タイムスタンプ (分単位で切り捨て) と ID を使用してキーを作成しています。(1348495218081lID1)。各プットの前にルックアップを行うので、同じキーを持つレコードが DB に存在するかどうかを確認します。ヒットした場合は、返されたレコードのカウンター フィールドをインクリメントし、そのレコードにプットを実行します。ただし、カウンター値が 1 より大きい DB 内のレコードは見当たりません。かなりの数のレコードがあるはずです。
次に例を示します。
UserNameCountRecord countRecordLookup = new UserNameCountRecord();
countRecordLookup.setStartDate(1348495218081l);
countRecordLookup.setUserName(ID1);
countRecordLookup.buildId();
// getId() will return "1348495218081lID1"
userNameCountRecord = findUserNameCountById(countRecordLookup.getId());
if (userNameCountRecord != null) {
userNameCountRecord.incrementCount();
entityManager.put(userNameCountRecord, false);
} else {
userNameCountRecord = new UserNameCountRecord();
userNameCountRecord.setStartDate(wibEntry.getStartDate());
userNameCountRecord.setUserName(wibEntry.getUserName());
userNameCountRecord.setCount(1);
if (wibEntry.isKnownUserId()) {
userNameCountRecord.setKnownUserName(true);
} else {
userNameCountRecord.setKnownUserName(false);
}
userNameCountRecord.buildId();
entityManager.put(userNameCountRecord);
}
entityManager.flush();
どんな助けでも大歓迎です。あなたがしてきたすべての良い仕事をありがとう!
乾杯