|
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