|
19 | 19 | import edu.harvard.iq.dataverse.export.ExportService; |
20 | 20 | import edu.harvard.iq.dataverse.globus.GlobusServiceBean; |
21 | 21 | import edu.harvard.iq.dataverse.harvest.server.OAIRecordServiceBean; |
22 | | -import edu.harvard.iq.dataverse.pidproviders.PidProvider; |
23 | | -import edu.harvard.iq.dataverse.pidproviders.PidUtil; |
24 | 22 | import edu.harvard.iq.dataverse.search.IndexServiceBean; |
25 | 23 | import edu.harvard.iq.dataverse.settings.SettingsServiceBean; |
26 | 24 | import edu.harvard.iq.dataverse.util.BundleUtil; |
|
41 | 39 | import jakarta.ejb.TransactionAttributeType; |
42 | 40 | import jakarta.inject.Named; |
43 | 41 | import jakarta.persistence.EntityManager; |
44 | | -import jakarta.persistence.LockModeType; |
45 | 42 | import jakarta.persistence.NoResultException; |
| 43 | +import jakarta.persistence.NonUniqueResultException; |
46 | 44 | import jakarta.persistence.PersistenceContext; |
47 | 45 | import jakarta.persistence.Query; |
48 | | -import jakarta.persistence.StoredProcedureQuery; |
49 | 46 | import jakarta.persistence.TypedQuery; |
50 | 47 | import org.apache.commons.lang3.StringUtils; |
51 | 48 |
|
@@ -115,28 +112,32 @@ public Dataset find(Object pk) { |
115 | 112 | * @return a dataset with pre-fetched file objects |
116 | 113 | */ |
117 | 114 | public Dataset findDeep(Object pk) { |
118 | | - return (Dataset) em.createNamedQuery("Dataset.findById") |
119 | | - .setParameter("id", pk) |
120 | | - // Optimization hints: retrieve all data in one query; this prevents point queries when iterating over the files |
121 | | - .setHint("eclipselink.left-join-fetch", "o.files.ingestRequest") |
122 | | - .setHint("eclipselink.left-join-fetch", "o.files.thumbnailForDataset") |
123 | | - .setHint("eclipselink.left-join-fetch", "o.files.dataTables") |
124 | | - .setHint("eclipselink.left-join-fetch", "o.files.auxiliaryFiles") |
125 | | - .setHint("eclipselink.left-join-fetch", "o.files.ingestReports") |
126 | | - .setHint("eclipselink.left-join-fetch", "o.files.dataFileTags") |
127 | | - .setHint("eclipselink.left-join-fetch", "o.files.fileMetadatas") |
128 | | - .setHint("eclipselink.left-join-fetch", "o.files.fileMetadatas.fileCategories") |
129 | | - .setHint("eclipselink.left-join-fetch", "o.files.fileMetadatas.varGroups") |
130 | | - //.setHint("eclipselink.left-join-fetch", "o.files.guestbookResponses |
131 | | - .setHint("eclipselink.left-join-fetch", "o.files.embargo") |
132 | | - .setHint("eclipselink.left-join-fetch", "o.files.retention") |
133 | | - .setHint("eclipselink.left-join-fetch", "o.files.fileAccessRequests") |
134 | | - .setHint("eclipselink.left-join-fetch", "o.files.owner") |
135 | | - .setHint("eclipselink.left-join-fetch", "o.files.releaseUser") |
136 | | - .setHint("eclipselink.left-join-fetch", "o.files.creator") |
137 | | - .setHint("eclipselink.left-join-fetch", "o.files.alternativePersistentIndentifiers") |
138 | | - .setHint("eclipselink.left-join-fetch", "o.files.roleAssignments") |
139 | | - .getSingleResult(); |
| 115 | + try { |
| 116 | + return (Dataset) em.createNamedQuery("Dataset.findById") |
| 117 | + .setParameter("id", pk) |
| 118 | + // Optimization hints: retrieve all data in one query; this prevents point queries when iterating over the files |
| 119 | + .setHint("eclipselink.left-join-fetch", "o.files.ingestRequest") |
| 120 | + .setHint("eclipselink.left-join-fetch", "o.files.thumbnailForDataset") |
| 121 | + .setHint("eclipselink.left-join-fetch", "o.files.dataTables") |
| 122 | + .setHint("eclipselink.left-join-fetch", "o.files.auxiliaryFiles") |
| 123 | + .setHint("eclipselink.left-join-fetch", "o.files.ingestReports") |
| 124 | + .setHint("eclipselink.left-join-fetch", "o.files.dataFileTags") |
| 125 | + .setHint("eclipselink.left-join-fetch", "o.files.fileMetadatas") |
| 126 | + .setHint("eclipselink.left-join-fetch", "o.files.fileMetadatas.fileCategories") |
| 127 | + .setHint("eclipselink.left-join-fetch", "o.files.fileMetadatas.varGroups") |
| 128 | + //.setHint("eclipselink.left-join-fetch", "o.files.guestbookResponses |
| 129 | + .setHint("eclipselink.left-join-fetch", "o.files.embargo") |
| 130 | + .setHint("eclipselink.left-join-fetch", "o.files.retention") |
| 131 | + .setHint("eclipselink.left-join-fetch", "o.files.fileAccessRequests") |
| 132 | + .setHint("eclipselink.left-join-fetch", "o.files.owner") |
| 133 | + .setHint("eclipselink.left-join-fetch", "o.files.releaseUser") |
| 134 | + .setHint("eclipselink.left-join-fetch", "o.files.creator") |
| 135 | + .setHint("eclipselink.left-join-fetch", "o.files.alternativePersistentIndentifiers") |
| 136 | + .setHint("eclipselink.left-join-fetch", "o.files.roleAssignments") |
| 137 | + .getSingleResult(); |
| 138 | + } catch (NoResultException | NonUniqueResultException ex) { |
| 139 | + return null; |
| 140 | + } |
140 | 141 | } |
141 | 142 |
|
142 | 143 | public List<Dataset> findByOwnerId(Long ownerId) { |
|
0 commit comments