Skip to content

Commit 7f7d473

Browse files
committed
Fix cast issues and errors when the record does not exists
1 parent 89f0652 commit 7f7d473

3 files changed

Lines changed: 19 additions & 13 deletions

File tree

orcid-message-listener/src/main/java/org/orcid/listener/persistence/dao/Api20RecordStatusDao.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,12 @@ public Api20RecordStatusEntity get(String orcid) {
2626
}
2727

2828
public boolean exists(String orcid) {
29-
Query query = entityManager.createNativeQuery("SELECT count(*) FROM api_2_0_record_status WHERE orcid=:orcid");
30-
query.setParameter("orcid", orcid);
31-
Number result = (Number) query.getSingleResult();
32-
return (result != null && result.longValue() > 0L);
29+
Long count = entityManager.createQuery(
30+
"SELECT COUNT(s) FROM Api20RecordStatusEntity s WHERE s.id = :orcid",
31+
Long.class)
32+
.setParameter("orcid", orcid)
33+
.getSingleResult();
34+
return count > 0;
3335
}
3436

3537
@Transactional

orcid-message-listener/src/main/java/org/orcid/listener/persistence/dao/Api30RecordStatusDao.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,12 @@ public Api30RecordStatusEntity get(String orcid) {
2626
}
2727

2828
public boolean exists(String orcid) {
29-
Query query = entityManager.createNativeQuery("SELECT count(*) FROM api_3_0_record_status WHERE orcid=:orcid");
30-
query.setParameter("orcid", orcid);
31-
Number result = (Number) query.getSingleResult();
32-
return (result != null && result.longValue() > 0L);
29+
Long count = entityManager.createQuery(
30+
"SELECT COUNT(s) FROM Api30RecordStatusEntity s WHERE s.id = :orcid",
31+
Long.class)
32+
.setParameter("orcid", orcid)
33+
.getSingleResult();
34+
return count > 0;
3335
}
3436

3537
@Transactional

orcid-message-listener/src/main/java/org/orcid/listener/persistence/dao/SearchEngineRecordStatusDao.java

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,16 +21,18 @@ public class SearchEngineRecordStatusDao {
2121
protected EntityManager entityManager;
2222

2323
public SearchEngineRecordStatusEntity get(String orcid) {
24-
Query query = entityManager.createNativeQuery("SELECT * FROM search_engine_record_status WHERE orcid = :orcid", Api30RecordStatusEntity.class);
24+
Query query = entityManager.createNativeQuery("SELECT * FROM search_engine_record_status WHERE orcid = :orcid", SearchEngineRecordStatusEntity.class);
2525
query.setParameter("orcid", orcid);
2626
return (SearchEngineRecordStatusEntity) query.getSingleResult();
2727
}
2828

2929
public boolean exists(String orcid) {
30-
Query query = entityManager.createNativeQuery("SELECT count(*) FROM search_engine_record_status WHERE orcid=:orcid");
31-
query.setParameter("orcid", orcid);
32-
Long result = ((BigInteger) query.getSingleResult()).longValue();
33-
return (result != null && result > 0);
30+
Long count = entityManager.createQuery(
31+
"SELECT COUNT(s) FROM SearchEngineRecordStatusEntity s WHERE s.id = :orcid",
32+
Long.class)
33+
.setParameter("orcid", orcid)
34+
.getSingleResult();
35+
return count > 0;
3436
}
3537

3638
@Transactional

0 commit comments

Comments
 (0)