Fix Hibernate 6 syntax of several queries. Must use Hibernate name and not SQL database column name.

This commit is contained in:
Tim Donohue
2024-03-20 10:22:46 -05:00
parent 20f14d23ae
commit fafb16ad6b
6 changed files with 25 additions and 25 deletions

View File

@@ -303,8 +303,8 @@ public class ResourcePolicyDAOImpl extends AbstractHibernateDAO<ResourcePolicy>
@Override @Override
public int countByEPerson(Context context, EPerson ePerson) throws SQLException { public int countByEPerson(Context context, EPerson ePerson) throws SQLException {
Query query = createQuery(context, Query query = createQuery(context,
"SELECT count(*) FROM " + ResourcePolicy.class.getSimpleName() + " WHERE eperson_id = (:epersonUuid) "); "SELECT count(*) FROM " + ResourcePolicy.class.getSimpleName() + " WHERE eperson = :eperson ");
query.setParameter("epersonUuid", ePerson.getID()); query.setParameter("eperson", ePerson);
return count(query); return count(query);
} }
@@ -324,9 +324,9 @@ public class ResourcePolicyDAOImpl extends AbstractHibernateDAO<ResourcePolicy>
@Override @Override
public int countByEPersonAndResourceUuid(Context context, EPerson eperson, UUID resourceUuid) throws SQLException { public int countByEPersonAndResourceUuid(Context context, EPerson eperson, UUID resourceUuid) throws SQLException {
Query query = createQuery(context, "SELECT count(*) FROM " + ResourcePolicy.class.getSimpleName() Query query = createQuery(context, "SELECT count(*) FROM " + ResourcePolicy.class.getSimpleName()
+ " WHERE eperson_id = (:epersonUuid) AND dspace_object = (:resourceUuid) "); + " WHERE eperson = :eperson AND dSpaceObject.id = :resourceUuid ");
query.setParameter("resourceUuid", resourceUuid); query.setParameter("resourceUuid", resourceUuid);
query.setParameter("epersonUuid", eperson.getID()); query.setParameter("eperson", eperson);
return count(query); return count(query);
} }
@@ -346,7 +346,7 @@ public class ResourcePolicyDAOImpl extends AbstractHibernateDAO<ResourcePolicy>
@Override @Override
public int countByResouceUuidAndActionId(Context context, UUID resourceUuid, int actionId) throws SQLException { public int countByResouceUuidAndActionId(Context context, UUID resourceUuid, int actionId) throws SQLException {
Query query = createQuery(context, "SELECT count(*) FROM " + ResourcePolicy.class.getSimpleName() Query query = createQuery(context, "SELECT count(*) FROM " + ResourcePolicy.class.getSimpleName()
+ " WHERE dspace_object = (:resourceUuid) AND action_id = (:actionId) "); + " WHERE dSpaceObject.id = :resourceUuid AND actionId = :actionId ");
query.setParameter("resourceUuid", resourceUuid); query.setParameter("resourceUuid", resourceUuid);
query.setParameter("actionId", actionId); query.setParameter("actionId", actionId);
return count(query); return count(query);
@@ -366,7 +366,7 @@ public class ResourcePolicyDAOImpl extends AbstractHibernateDAO<ResourcePolicy>
@Override @Override
public int countByResourceUuid(Context context, UUID resourceUuid) throws SQLException { public int countByResourceUuid(Context context, UUID resourceUuid) throws SQLException {
Query query = createQuery(context, "SELECT count(*) FROM " + ResourcePolicy.class.getSimpleName() Query query = createQuery(context, "SELECT count(*) FROM " + ResourcePolicy.class.getSimpleName()
+ " WHERE dspace_object = (:resourceUuid) "); + " WHERE dSpaceObject.id = :resourceUuid ");
query.setParameter("resourceUuid", resourceUuid); query.setParameter("resourceUuid", resourceUuid);
return count(query); return count(query);
} }
@@ -384,8 +384,8 @@ public class ResourcePolicyDAOImpl extends AbstractHibernateDAO<ResourcePolicy>
@Override @Override
public int countResourcePolicyByGroup(Context context, Group group) throws SQLException { public int countResourcePolicyByGroup(Context context, Group group) throws SQLException {
Query query = createQuery(context, "SELECT count(*) " + "FROM " + ResourcePolicy.class.getSimpleName() Query query = createQuery(context, "SELECT count(*) " + "FROM " + ResourcePolicy.class.getSimpleName()
+ " WHERE epersongroup_id = (:groupUuid) "); + " WHERE epersonGroup = :group ");
query.setParameter("groupUuid", group.getID()); query.setParameter("group", group);
return count(query); return count(query);
} }
@@ -405,9 +405,9 @@ public class ResourcePolicyDAOImpl extends AbstractHibernateDAO<ResourcePolicy>
@Override @Override
public int countByGroupAndResourceUuid(Context context, Group group, UUID resourceUuid) throws SQLException { public int countByGroupAndResourceUuid(Context context, Group group, UUID resourceUuid) throws SQLException {
Query query = createQuery(context, "SELECT count(*) FROM " + ResourcePolicy.class.getSimpleName() Query query = createQuery(context, "SELECT count(*) FROM " + ResourcePolicy.class.getSimpleName()
+ " WHERE dspace_object = (:resourceUuid) AND epersongroup_id = (:groupUuid) "); + " WHERE dSpaceObject.id = :resourceUuid AND epersonGroup = :group ");
query.setParameter("resourceUuid", resourceUuid); query.setParameter("resourceUuid", resourceUuid);
query.setParameter("groupUuid", group.getID()); query.setParameter("group", group);
return count(query); return count(query);
} }

View File

@@ -1435,7 +1435,7 @@ prevent the generation of resource policy entry values with null dspace_object a
public List<Item> findByMetadataQuery(Context context, List<QueryPredicate> queryPredicates, public List<Item> findByMetadataQuery(Context context, List<QueryPredicate> queryPredicates,
List<UUID> collectionUuids, long offset, int limit) List<UUID> collectionUuids, long offset, int limit)
throws SQLException { throws SQLException {
return itemDAO.findByMetadataQuery(context, queryPredicates, collectionUuids, "text_value ~ ?", return itemDAO.findByMetadataQuery(context, queryPredicates, collectionUuids, "value ~ ?",
offset, limit); offset, limit);
} }
@@ -1444,7 +1444,7 @@ prevent the generation of resource policy entry values with null dspace_object a
public long countForMetadataQuery(Context context, List<QueryPredicate> queryPredicates, public long countForMetadataQuery(Context context, List<QueryPredicate> queryPredicates,
List<UUID> collectionUuids) List<UUID> collectionUuids)
throws SQLException { throws SQLException {
return itemDAO.countForMetadataQuery(context, queryPredicates, collectionUuids, "text_value ~ ?"); return itemDAO.countForMetadataQuery(context, queryPredicates, collectionUuids, "value ~ ?");
} }
@Override @Override

View File

@@ -88,7 +88,7 @@ public interface ItemDAO extends DSpaceObjectLegacySupportDAO<Item> {
* @param collectionUuids UUIDs of the collections to search. * @param collectionUuids UUIDs of the collections to search.
* If none are provided, the entire repository will be searched. * If none are provided, the entire repository will be searched.
* @param regexClause Syntactic expression used to query the database using a regular expression * @param regexClause Syntactic expression used to query the database using a regular expression
* (e.g.: "text_value ~ ?") * (e.g.: "value ~ ?")
* @param offset The offset for the query * @param offset The offset for the query
* @param limit Maximum number of items to return * @param limit Maximum number of items to return
* @return A list containing the items that match the provided criteria * @return A list containing the items that match the provided criteria

View File

@@ -84,7 +84,7 @@ public class MetadataValueDAOImpl extends AbstractHibernateDAO<MetadataValue> im
public MetadataValue getMinimum(Context context, int metadataFieldId) public MetadataValue getMinimum(Context context, int metadataFieldId)
throws SQLException { throws SQLException {
String queryString = "SELECT m FROM MetadataValue m JOIN FETCH m.metadataField WHERE m.metadataField.id = " + String queryString = "SELECT m FROM MetadataValue m JOIN FETCH m.metadataField WHERE m.metadataField.id = " +
":metadata_field_id ORDER BY text_value"; ":metadata_field_id ORDER BY value";
Query query = createQuery(context, queryString); Query query = createQuery(context, queryString);
query.setParameter("metadata_field_id", metadataFieldId); query.setParameter("metadata_field_id", metadataFieldId);
query.setMaxResults(1); query.setMaxResults(1);

View File

@@ -418,14 +418,14 @@ public class RelationshipDAOImpl extends AbstractHibernateDAO<Relationship> impl
public List<Relationship> findByItemAndRelationshipTypeAndList(Context context, UUID focusUUID, public List<Relationship> findByItemAndRelationshipTypeAndList(Context context, UUID focusUUID,
RelationshipType relationshipType, List<UUID> items, boolean isLeft, RelationshipType relationshipType, List<UUID> items, boolean isLeft,
int offset, int limit) throws SQLException { int offset, int limit) throws SQLException {
String side = isLeft ? "left_id" : "right_id"; String side = isLeft ? "leftItem.id" : "rightItem.id";
String otherSide = !isLeft ? "left_id" : "right_id"; String otherSide = !isLeft ? "leftItem.id" : "rightItem.id";
Query query = createQuery(context, "FROM " + Relationship.class.getSimpleName() + Query query = createQuery(context, "FROM " + Relationship.class.getSimpleName() +
" WHERE type_id = (:typeId) " + " WHERE relationshipType = :type " +
"AND " + side + " = (:focusUUID) " + "AND " + side + " = (:focusUUID) " +
"AND " + otherSide + " in (:list) " + "AND " + otherSide + " in (:list) " +
"ORDER BY id"); "ORDER BY id");
query.setParameter("typeId", relationshipType.getID()); query.setParameter("type", relationshipType);
query.setParameter("focusUUID", focusUUID); query.setParameter("focusUUID", focusUUID);
query.setParameter("list", items); query.setParameter("list", items);
return list(query, limit, offset); return list(query, limit, offset);
@@ -434,14 +434,14 @@ public class RelationshipDAOImpl extends AbstractHibernateDAO<Relationship> impl
@Override @Override
public int countByItemAndRelationshipTypeAndList(Context context, UUID focusUUID, RelationshipType relationshipType, public int countByItemAndRelationshipTypeAndList(Context context, UUID focusUUID, RelationshipType relationshipType,
List<UUID> items, boolean isLeft) throws SQLException { List<UUID> items, boolean isLeft) throws SQLException {
String side = isLeft ? "left_id" : "right_id"; String side = isLeft ? "leftItem.id" : "rightItem.id";
String otherSide = !isLeft ? "left_id" : "right_id"; String otherSide = !isLeft ? "leftItem.id" : "rightItem.id";
Query query = createQuery(context, "SELECT count(*) " + Query query = createQuery(context, "SELECT count(*) " +
"FROM " + Relationship.class.getSimpleName() + "FROM " + Relationship.class.getSimpleName() +
" WHERE type_id = (:typeId) " + " WHERE relationshipType = :type " +
"AND " + side + " = (:focusUUID) " + "AND " + side + " = (:focusUUID) " +
"AND " + otherSide + " in (:list)"); "AND " + otherSide + " in (:list)");
query.setParameter("typeId", relationshipType.getID()); query.setParameter("type", relationshipType);
query.setParameter("focusUUID", focusUUID); query.setParameter("focusUUID", focusUUID);
query.setParameter("list", items); query.setParameter("list", items);
return count(query); return count(query);

View File

@@ -84,9 +84,9 @@ public class VersionDAOImpl extends AbstractHibernateDAO<Version> implements Ver
@Override @Override
public int countVersionsByHistoryWithItem(Context context, VersionHistory versionHistory) throws SQLException { public int countVersionsByHistoryWithItem(Context context, VersionHistory versionHistory) throws SQLException {
Query query = createQuery(context, "SELECT count(*) FROM " + Version.class.getSimpleName() Query query = createQuery(context, "SELECT count(*) FROM " + Version.class.getSimpleName()
+ " WHERE versionhistory_id = (:versionhistoryId)" + " WHERE versionHistory = :versionhistory"
+ " AND item_id IS NOT NULL"); + " AND item IS NOT NULL");
query.setParameter("versionhistoryId", versionHistory); query.setParameter("versionhistory", versionHistory);
return count(query); return count(query);
} }