Additional query method
parent
2cfbfc80ea
commit
56cdbaa03b
|
|
@ -83,7 +83,9 @@ import javax.persistence.Table;
|
||||||
@NamedQuery(name = "CcmObject.findById",
|
@NamedQuery(name = "CcmObject.findById",
|
||||||
query = "SELECT o FROM CcmObject o WHERE o.objectId = :id"),
|
query = "SELECT o FROM CcmObject o WHERE o.objectId = :id"),
|
||||||
@NamedQuery(name = "CcmObject.findByUuid",
|
@NamedQuery(name = "CcmObject.findByUuid",
|
||||||
query = "SELECT o FROM CcmObject o WHERE o.uuid = :uuid")
|
query = "SELECT o FROM CcmObject o WHERE o.uuid = :uuid"),
|
||||||
|
@NamedQuery(name = "CcmObject.findFirstByUuid",
|
||||||
|
query = "SELECT o FROM CcmObject o WHERE o.uuid = :uuid ORDER BY objectId")
|
||||||
})
|
})
|
||||||
@XmlRootElement(name = "ccm-object", namespace = CORE_XML_NS)
|
@XmlRootElement(name = "ccm-object", namespace = CORE_XML_NS)
|
||||||
//False warning (?). Because this class has been migrated from the old PDL style
|
//False warning (?). Because this class has been migrated from the old PDL style
|
||||||
|
|
|
||||||
|
|
@ -56,7 +56,7 @@ public class CcmObjectIdResolver implements Serializable, ObjectIdResolver {
|
||||||
return CdiUtil
|
return CdiUtil
|
||||||
.createCdiUtil()
|
.createCdiUtil()
|
||||||
.findBean(CcmObjectRepository.class)
|
.findBean(CcmObjectRepository.class)
|
||||||
.findObjectByUuid(id.key.toString())
|
.findFirstObjectByUuid(id.key.toString())
|
||||||
.orElseThrow(
|
.orElseThrow(
|
||||||
() -> new IllegalArgumentException(
|
() -> new IllegalArgumentException(
|
||||||
String.format(
|
String.format(
|
||||||
|
|
|
||||||
|
|
@ -28,6 +28,7 @@ import java.util.UUID;
|
||||||
|
|
||||||
import static org.libreccm.core.CoreConstants.ACCESS_DENIED;
|
import static org.libreccm.core.CoreConstants.ACCESS_DENIED;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A repository class for {@link CcmObject} entities.
|
* A repository class for {@link CcmObject} entities.
|
||||||
|
|
@ -118,6 +119,26 @@ public class CcmObjectRepository extends AbstractEntityRepository<Long, CcmObjec
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Finds a {@link CcmObject} by its uuid.
|
||||||
|
*
|
||||||
|
* @param uuid The uuid of the item to find
|
||||||
|
*
|
||||||
|
* @return An optional either with the found item or empty
|
||||||
|
*/
|
||||||
|
public Optional<CcmObject> findFirstObjectByUuid(final String uuid) {
|
||||||
|
final TypedQuery<CcmObject> query = getEntityManager().createNamedQuery(
|
||||||
|
"CcmObject.findFirstByUuid", CcmObject.class);
|
||||||
|
query.setParameter("uuid", uuid);
|
||||||
|
|
||||||
|
final List<CcmObject> result = query.getResultList();
|
||||||
|
if (result.isEmpty()) {
|
||||||
|
return Optional.empty();
|
||||||
|
} else {
|
||||||
|
return Optional.of(result.get(0));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Transactional(Transactional.TxType.REQUIRED)
|
@Transactional(Transactional.TxType.REQUIRED)
|
||||||
@Override
|
@Override
|
||||||
public void delete(final CcmObject object) {
|
public void delete(final CcmObject object) {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue