Index: eprms-tap/src/main/java/info/ajanovski/eprms/tap/services/TranslationServiceImpl.java
===================================================================
--- eprms-tap/src/main/java/info/ajanovski/eprms/tap/services/TranslationServiceImpl.java	(revision 43db73ef9286392b1a1eb93b03cfc4b7bb38fc2a)
+++ eprms-tap/src/main/java/info/ajanovski/eprms/tap/services/TranslationServiceImpl.java	(revision 67767a0026b9ba5cf8925fd1aaaf85410a41064a)
@@ -1,3 +1,5 @@
 package info.ajanovski.eprms.tap.services;
+
+import java.util.List;
 
 import org.apache.tapestry5.ioc.annotations.Inject;
@@ -16,14 +18,21 @@
 	private GenericService genericService;
 
+	private Session getEntityManager() {
+		return session.getSession();
+	}
+
 	@Override
 	public String getTranslation(String className, String attributeCode, long originalObjectId, String locale) {
 		try {
-			Criteria crit = session.createCriteria(Translation.class)
-					.add(Restrictions.and(Restrictions.eq("className", className),
-							Restrictions.eq("attributeCode", attributeCode), Restrictions.eq("locale", locale),
-							Restrictions.eq("originalObjectId", originalObjectId)))
-					.setReadOnly(true);
-
-			return ((Translation) crit.uniqueResult()).getTranslatedText();
+			Translation t = (Translation) getEntityManager().createQuery("""
+					from Translation
+					where className=:className and
+					      attributeCode=:attributeCode and
+					      originalObjectId=:originalObjectId and
+					      locale=:locale
+					""").setParameter("className", className).setParameter("attributeCode", attributeCode)
+					.setParameter("originalObjectId", originalObjectId).setParameter("locale", locale)
+					.getSingleResult();
+			return t.getTranslatedText();
 		} catch (Exception e) {
 			return null;
