annotate src/main/java/org/mpi/openmind/repository/services/AbstractPersistenceService.java @ 33:e52f593f9e0d

new transaction logger "openmind.transactionlog" logging entity save actions and their data. more comments in code.
author casties
date Fri, 26 Aug 2016 11:42:41 +0200
parents 8ea716da439f
children 5737ab564b94
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
jurzua
parents:
diff changeset
1 package org.mpi.openmind.repository.services;
jurzua
parents:
diff changeset
2
jurzua
parents:
diff changeset
3 import java.text.DecimalFormat;
jurzua
parents:
diff changeset
4 import java.util.ArrayList;
jurzua
parents:
diff changeset
5 import java.util.List;
jurzua
parents:
diff changeset
6 import java.util.Map;
jurzua
parents:
diff changeset
7
jurzua
parents:
diff changeset
8 import org.apache.commons.lang.StringUtils;
jurzua
parents:
diff changeset
9 import org.apache.log4j.Logger;
jurzua
parents:
diff changeset
10 import org.hibernate.Query;
jurzua
parents:
diff changeset
11 import org.hibernate.Session;
jurzua
parents:
diff changeset
12 import org.mpi.openmind.configuration.ConfigurationService;
jurzua
parents:
diff changeset
13 import org.mpi.openmind.repository.bo.Attribute;
jurzua
parents:
diff changeset
14 import org.mpi.openmind.repository.bo.Entity;
jurzua
parents:
diff changeset
15 import org.mpi.openmind.repository.bo.Node;
jurzua
parents:
diff changeset
16 import org.mpi.openmind.repository.bo.Relation;
jurzua
parents:
diff changeset
17 import org.mpi.openmind.repository.bo.View;
jurzua
parents:
diff changeset
18 import org.mpi.openmind.repository.bo.utils.Sequence;
jurzua
parents:
diff changeset
19 import org.mpi.openmind.repository.utils.HibernateUtil;
jurzua
parents:
diff changeset
20 import org.mpi.openmind.repository.utils.OwnValueGenerator;
jurzua
parents:
diff changeset
21
jurzua
parents:
diff changeset
22 /**
jurzua
parents:
diff changeset
23 *
jurzua
parents:
diff changeset
24 * @author jurzua
jurzua
parents:
diff changeset
25 */
jurzua
parents:
diff changeset
26 public abstract class AbstractPersistenceService {
jurzua
parents:
diff changeset
27
33
e52f593f9e0d new transaction logger "openmind.transactionlog" logging entity save actions and their data.
casties
parents: 27
diff changeset
28 private ConfigurationService configurationService;
1
jurzua
parents:
diff changeset
29
jurzua
parents:
diff changeset
30 private OwnValueGenerator ownValueGenerator;
jurzua
parents:
diff changeset
31
jurzua
parents:
diff changeset
32 private final static String NODE_SEQUENCE = "nodeSequence";
jurzua
parents:
diff changeset
33
33
e52f593f9e0d new transaction logger "openmind.transactionlog" logging entity save actions and their data.
casties
parents: 27
diff changeset
34 private static Logger logger = Logger.getLogger(AbstractPersistenceService.class);
e52f593f9e0d new transaction logger "openmind.transactionlog" logging entity save actions and their data.
casties
parents: 27
diff changeset
35
e52f593f9e0d new transaction logger "openmind.transactionlog" logging entity save actions and their data.
casties
parents: 27
diff changeset
36 public static final String TRANSACTION_LOGGER = "openmind.transactionlog";
1
jurzua
parents:
diff changeset
37
33
e52f593f9e0d new transaction logger "openmind.transactionlog" logging entity save actions and their data.
casties
parents: 27
diff changeset
38 private static Logger txLog = Logger.getLogger(TRANSACTION_LOGGER);
e52f593f9e0d new transaction logger "openmind.transactionlog" logging entity save actions and their data.
casties
parents: 27
diff changeset
39
e52f593f9e0d new transaction logger "openmind.transactionlog" logging entity save actions and their data.
casties
parents: 27
diff changeset
40 private boolean importMode = false;
1
jurzua
parents:
diff changeset
41
jurzua
parents:
diff changeset
42 /*
jurzua
parents:
diff changeset
43 * static { logger.setLevel(Level.DEBUG); PatternLayout layout = new
jurzua
parents:
diff changeset
44 * PatternLayout( "%d{ABSOLUTE} %5p %c{1}:%L - %m%n"); Appender stdout = new
jurzua
parents:
diff changeset
45 * ConsoleAppender(layout, "System.out"); logger.addAppender(stdout); }
jurzua
parents:
diff changeset
46 */
jurzua
parents:
diff changeset
47
jurzua
parents:
diff changeset
48 public AbstractPersistenceService() {
jurzua
parents:
diff changeset
49 }
jurzua
parents:
diff changeset
50
jurzua
parents:
diff changeset
51 public String generateOwnValue(Entity entity) {
jurzua
parents:
diff changeset
52 Session session = HibernateUtil.getSessionFactory().getCurrentSession();
jurzua
parents:
diff changeset
53 String ownValue = null;
jurzua
parents:
diff changeset
54
jurzua
parents:
diff changeset
55 try {
jurzua
parents:
diff changeset
56 session.getTransaction().begin();
jurzua
parents:
diff changeset
57 ownValue = this.ownValueGenerator.generateOwnValue(entity, session);
jurzua
parents:
diff changeset
58 } catch (Exception e) {
jurzua
parents:
diff changeset
59 logger.error(e.getMessage(), e);
jurzua
parents:
diff changeset
60 // e.printStackTrace();
jurzua
parents:
diff changeset
61 } finally {
jurzua
parents:
diff changeset
62 session.getTransaction().commit();
jurzua
parents:
diff changeset
63 }
jurzua
parents:
diff changeset
64
jurzua
parents:
diff changeset
65 return ownValue;
jurzua
parents:
diff changeset
66 }
jurzua
parents:
diff changeset
67
jurzua
parents:
diff changeset
68 /**
jurzua
parents:
diff changeset
69 * Performs the actual disabling of the Hibernate second-level cache.
jurzua
parents:
diff changeset
70 */
jurzua
parents:
diff changeset
71 /*
jurzua
parents:
diff changeset
72 protected void disableSecondLevelCache() {
jurzua
parents:
diff changeset
73 Map<Object, Cache> cacheRegionsMap = ((SessionFactoryImpl) HibernateUtil
jurzua
parents:
diff changeset
74 .getSessionFactory()).getAllSecondLevelCacheRegions();
jurzua
parents:
diff changeset
75 Collection<Cache> cacheRegions = cacheRegionsMap.values();
jurzua
parents:
diff changeset
76 for (Cache cache : cacheRegions) {
jurzua
parents:
diff changeset
77 cache.clear();
jurzua
parents:
diff changeset
78 }
jurzua
parents:
diff changeset
79 }*/
jurzua
parents:
diff changeset
80
jurzua
parents:
diff changeset
81 public int dropAssertions() {
jurzua
parents:
diff changeset
82 int row = 0;
jurzua
parents:
diff changeset
83 try {
jurzua
parents:
diff changeset
84 Session session = HibernateUtil.getSessionFactory()
jurzua
parents:
diff changeset
85 .getCurrentSession();
jurzua
parents:
diff changeset
86 session.beginTransaction();
jurzua
parents:
diff changeset
87 String sql = "DELETE FROM Node WHERE type = 'ABox'";
jurzua
parents:
diff changeset
88 Query query = session.createQuery(sql);
jurzua
parents:
diff changeset
89 row = query.executeUpdate();
jurzua
parents:
diff changeset
90
jurzua
parents:
diff changeset
91 logger.info("Drop assertions - rows deleted= " + row);
jurzua
parents:
diff changeset
92
jurzua
parents:
diff changeset
93 session.getTransaction().commit();
jurzua
parents:
diff changeset
94 } catch (Exception e) {
jurzua
parents:
diff changeset
95 logger.error(e.getMessage(), e);
jurzua
parents:
diff changeset
96 // e.printStackTrace();
jurzua
parents:
diff changeset
97 }
jurzua
parents:
diff changeset
98 return row;
jurzua
parents:
diff changeset
99 }
jurzua
parents:
diff changeset
100
jurzua
parents:
diff changeset
101 public int dropDefinitions() {
jurzua
parents:
diff changeset
102 int row = 0;
jurzua
parents:
diff changeset
103 try {
jurzua
parents:
diff changeset
104 Session session = HibernateUtil.getSessionFactory()
jurzua
parents:
diff changeset
105 .getCurrentSession();
jurzua
parents:
diff changeset
106 session.beginTransaction();
jurzua
parents:
diff changeset
107 String sql = "DELETE FROM Node WHERE type = 'TBox'";
jurzua
parents:
diff changeset
108 Query query = session.createQuery(sql);
jurzua
parents:
diff changeset
109 row = query.executeUpdate();
jurzua
parents:
diff changeset
110
jurzua
parents:
diff changeset
111 logger.info("Drop definitions - rows deleted= " + row);
jurzua
parents:
diff changeset
112
jurzua
parents:
diff changeset
113 session.getTransaction().commit();
jurzua
parents:
diff changeset
114 } catch (Exception e) {
jurzua
parents:
diff changeset
115 logger.error(e.getMessage(), e);
jurzua
parents:
diff changeset
116 // e.printStackTrace();
jurzua
parents:
diff changeset
117 }
jurzua
parents:
diff changeset
118 return row;
jurzua
parents:
diff changeset
119 }
jurzua
parents:
diff changeset
120
jurzua
parents:
diff changeset
121 public void saveOrUpdateObject(Object obj) {
jurzua
parents:
diff changeset
122 try {
jurzua
parents:
diff changeset
123 Session session = HibernateUtil.getSessionFactory()
jurzua
parents:
diff changeset
124 .getCurrentSession();
jurzua
parents:
diff changeset
125 session.getTransaction().begin();
jurzua
parents:
diff changeset
126 session.saveOrUpdate(obj);
jurzua
parents:
diff changeset
127 session.getTransaction().commit();
jurzua
parents:
diff changeset
128 } catch (Exception e) {
jurzua
parents:
diff changeset
129 logger.error(e.getMessage(), e);
jurzua
parents:
diff changeset
130 }
jurzua
parents:
diff changeset
131 }
jurzua
parents:
diff changeset
132
jurzua
parents:
diff changeset
133 private void saveNode0(Session session, Node node, Sequence idSequence){
jurzua
parents:
diff changeset
134 node.autoNormalize();
jurzua
parents:
diff changeset
135 node.setSystemStatus(Node.SYS_STATUS_CURRENT_VERSION);
jurzua
parents:
diff changeset
136
jurzua
parents:
diff changeset
137 if(node.getModificationTime() == null){
jurzua
parents:
diff changeset
138 node.setModificationTime(System.currentTimeMillis());
jurzua
parents:
diff changeset
139 }
jurzua
parents:
diff changeset
140 if(node.getVersion() == null){
jurzua
parents:
diff changeset
141 node.increaseVersion();
jurzua
parents:
diff changeset
142 }
jurzua
parents:
diff changeset
143
jurzua
parents:
diff changeset
144 if (node.getId() == null){
jurzua
parents:
diff changeset
145 node.setId(idSequence.generateId());
jurzua
parents:
diff changeset
146 }
jurzua
parents:
diff changeset
147
jurzua
parents:
diff changeset
148 if (node.getRowId() == null){
jurzua
parents:
diff changeset
149 session.save(node);
jurzua
parents:
diff changeset
150 }else{
jurzua
parents:
diff changeset
151 session.merge(node);
jurzua
parents:
diff changeset
152 }
jurzua
parents:
diff changeset
153
jurzua
parents:
diff changeset
154 logger.info("Saved node\t" + node);
jurzua
parents:
diff changeset
155 }
jurzua
parents:
diff changeset
156
jurzua
parents:
diff changeset
157 public void saveNode(Node node) throws Exception {
jurzua
parents:
diff changeset
158
jurzua
parents:
diff changeset
159 logger.info("Saving node\t" + node);
jurzua
parents:
diff changeset
160
jurzua
parents:
diff changeset
161 Session session = HibernateUtil.getSessionFactory().getCurrentSession();
jurzua
parents:
diff changeset
162 session.getTransaction().begin();
jurzua
parents:
diff changeset
163
jurzua
parents:
diff changeset
164 Sequence idSequence = this.getIdSequence(session);
jurzua
parents:
diff changeset
165
jurzua
parents:
diff changeset
166 this.saveNode0(session, node, idSequence);
jurzua
parents:
diff changeset
167
jurzua
parents:
diff changeset
168 session.save(idSequence);
jurzua
parents:
diff changeset
169
jurzua
parents:
diff changeset
170 session.getTransaction().commit();
jurzua
parents:
diff changeset
171 logger.info("Node saved\t" + node);
jurzua
parents:
diff changeset
172 }
jurzua
parents:
diff changeset
173
jurzua
parents:
diff changeset
174 public void saveNodeList(List<Node> nodeList) throws Exception{
jurzua
parents:
diff changeset
175
jurzua
parents:
diff changeset
176 Session session = HibernateUtil.getSessionFactory().getCurrentSession();
jurzua
parents:
diff changeset
177 session.getTransaction().begin();
jurzua
parents:
diff changeset
178
jurzua
parents:
diff changeset
179 Sequence idSequence = this.getIdSequence(session);
jurzua
parents:
diff changeset
180 /*
jurzua
parents:
diff changeset
181 long start = System.currentTimeMillis();
jurzua
parents:
diff changeset
182 DecimalFormat df = new DecimalFormat("#.##");
jurzua
parents:
diff changeset
183 int counter = 0;
jurzua
parents:
diff changeset
184 */
jurzua
parents:
diff changeset
185 logger.info("##### Saving Node List: " + nodeList.size() + " #####");
jurzua
parents:
diff changeset
186
jurzua
parents:
diff changeset
187 for (Node node : nodeList) {
jurzua
parents:
diff changeset
188 this.saveNode0(session, node, idSequence);
jurzua
parents:
diff changeset
189 /*
jurzua
parents:
diff changeset
190 double percent = ((double) counter / (double) nodeList.size()) * 100.0;
jurzua
parents:
diff changeset
191 long diff = System.currentTimeMillis() - start;
jurzua
parents:
diff changeset
192 double min = (double) diff / (double) (60 * 1000);
jurzua
parents:
diff changeset
193
jurzua
parents:
diff changeset
194 if ((percent % 10) < 0.005) {
jurzua
parents:
diff changeset
195 logger.debug("\n[" + df.format(percent) + " %] counter: "
jurzua
parents:
diff changeset
196 + counter + " / " + nodeList.size());
jurzua
parents:
diff changeset
197
jurzua
parents:
diff changeset
198 logger.debug("Tempo: " + (double) counter / min);
jurzua
parents:
diff changeset
199 }
jurzua
parents:
diff changeset
200 counter++;
jurzua
parents:
diff changeset
201 */
jurzua
parents:
diff changeset
202 }
jurzua
parents:
diff changeset
203
jurzua
parents:
diff changeset
204 session.save(idSequence);
jurzua
parents:
diff changeset
205 session.getTransaction().commit();
jurzua
parents:
diff changeset
206 }
jurzua
parents:
diff changeset
207
jurzua
parents:
diff changeset
208 /**
jurzua
parents:
diff changeset
209 * <p>
jurzua
parents:
diff changeset
210 * This method delete the nodes and its history.
jurzua
parents:
diff changeset
211 * </p>
jurzua
parents:
diff changeset
212 *
jurzua
parents:
diff changeset
213 * @param nodeList
jurzua
parents:
diff changeset
214 */
jurzua
parents:
diff changeset
215 public void removeNode(Node node) {
jurzua
parents:
diff changeset
216 try {
jurzua
parents:
diff changeset
217 Session session = HibernateUtil.getSessionFactory()
jurzua
parents:
diff changeset
218 .getCurrentSession();
jurzua
parents:
diff changeset
219 session.getTransaction().begin();
jurzua
parents:
diff changeset
220
jurzua
parents:
diff changeset
221 this.removeNodesById(node.getId(), session);
jurzua
parents:
diff changeset
222
jurzua
parents:
diff changeset
223 session.getTransaction().commit();
jurzua
parents:
diff changeset
224 } catch (Exception e) {
jurzua
parents:
diff changeset
225 logger.error(e.getMessage(), e);
jurzua
parents:
diff changeset
226 // e.printStackTrace();
jurzua
parents:
diff changeset
227 }
jurzua
parents:
diff changeset
228 }
jurzua
parents:
diff changeset
229
jurzua
parents:
diff changeset
230 /**
jurzua
parents:
diff changeset
231 * <p>
jurzua
parents:
diff changeset
232 * This method delete the nodes and its history.
jurzua
parents:
diff changeset
233 * </p>
jurzua
parents:
diff changeset
234 *
jurzua
parents:
diff changeset
235 * @param nodeList
jurzua
parents:
diff changeset
236 */
jurzua
parents:
diff changeset
237 public void removeNodeList(List<Node> nodeList) {
jurzua
parents:
diff changeset
238 try {
jurzua
parents:
diff changeset
239 Session session = HibernateUtil.getSessionFactory()
jurzua
parents:
diff changeset
240 .getCurrentSession();
jurzua
parents:
diff changeset
241 session.getTransaction().begin();
jurzua
parents:
diff changeset
242
jurzua
parents:
diff changeset
243 logger.debug("##### Deleting Node List: " + nodeList.size()
jurzua
parents:
diff changeset
244 + " #####");
jurzua
parents:
diff changeset
245
jurzua
parents:
diff changeset
246 for (Node node : nodeList) {
jurzua
parents:
diff changeset
247 this.removeNodesById(node.getId(), session);
jurzua
parents:
diff changeset
248 }
jurzua
parents:
diff changeset
249
jurzua
parents:
diff changeset
250 session.getTransaction().commit();
jurzua
parents:
diff changeset
251 } catch (Exception e) {
jurzua
parents:
diff changeset
252 logger.error(e.getMessage(), e);
jurzua
parents:
diff changeset
253 // e.printStackTrace();
jurzua
parents:
diff changeset
254 }
jurzua
parents:
diff changeset
255 }
jurzua
parents:
diff changeset
256
jurzua
parents:
diff changeset
257 /**
jurzua
parents:
diff changeset
258 * Save every part of the entity but not generate new versions nor ownValue
jurzua
parents:
diff changeset
259 *
jurzua
parents:
diff changeset
260 * @param nodeList
jurzua
parents:
diff changeset
261 */
jurzua
parents:
diff changeset
262 public void saveEntityListAsNode(List<Entity> entList) {
jurzua
parents:
diff changeset
263 int entitiesSize = 0;
jurzua
parents:
diff changeset
264 int nodeSize = 0;
jurzua
parents:
diff changeset
265 long start = System.currentTimeMillis();
jurzua
parents:
diff changeset
266 try {
jurzua
parents:
diff changeset
267 Session session = HibernateUtil.getSessionFactory()
jurzua
parents:
diff changeset
268 .getCurrentSession();
jurzua
parents:
diff changeset
269 session.getTransaction().begin();
jurzua
parents:
diff changeset
270
jurzua
parents:
diff changeset
271 Sequence idSequence = this.getIdSequence(session);
jurzua
parents:
diff changeset
272
jurzua
parents:
diff changeset
273 DecimalFormat df = new DecimalFormat("#.##");
jurzua
parents:
diff changeset
274 int counter = 0;
jurzua
parents:
diff changeset
275
jurzua
parents:
diff changeset
276 List<Node> nodeList = generateNodeList(entList);
jurzua
parents:
diff changeset
277 logger.debug("##### Saving Node List #####");
jurzua
parents:
diff changeset
278 logger.debug("Entities: " + entList.size() + " #####");
jurzua
parents:
diff changeset
279 logger.debug("Nodes: " + nodeList.size() + " #####");
jurzua
parents:
diff changeset
280
jurzua
parents:
diff changeset
281 entitiesSize = entList.size();
jurzua
parents:
diff changeset
282 nodeSize = nodeList.size();
jurzua
parents:
diff changeset
283
jurzua
parents:
diff changeset
284 for (Node node : nodeList) {
jurzua
parents:
diff changeset
285
jurzua
parents:
diff changeset
286 node.autoNormalize();
jurzua
parents:
diff changeset
287
jurzua
parents:
diff changeset
288 if (node.getId() == null)
jurzua
parents:
diff changeset
289 node.setId(idSequence.generateId());
jurzua
parents:
diff changeset
290 if (node.getRowId() == null)
jurzua
parents:
diff changeset
291 session.save(node);
jurzua
parents:
diff changeset
292 else
jurzua
parents:
diff changeset
293 session.merge(node);
jurzua
parents:
diff changeset
294
jurzua
parents:
diff changeset
295 double percent = ((double) counter / (double) nodeList.size()) * 100.0;
jurzua
parents:
diff changeset
296 long diff = System.currentTimeMillis() - start;
jurzua
parents:
diff changeset
297 double min = (double) diff / (double) (60 * 1000);
jurzua
parents:
diff changeset
298
jurzua
parents:
diff changeset
299 if ((percent % 10) < 0.005) {
jurzua
parents:
diff changeset
300 logger.debug("\n[" + df.format(percent) + " %] counter: "
jurzua
parents:
diff changeset
301 + counter + " / " + nodeList.size());
jurzua
parents:
diff changeset
302
jurzua
parents:
diff changeset
303 logger.debug("Tempo: " + (double) counter / min);
jurzua
parents:
diff changeset
304 }
jurzua
parents:
diff changeset
305 counter++;
jurzua
parents:
diff changeset
306 }
jurzua
parents:
diff changeset
307
jurzua
parents:
diff changeset
308 session.save(idSequence);
jurzua
parents:
diff changeset
309 session.getTransaction().commit();
jurzua
parents:
diff changeset
310
jurzua
parents:
diff changeset
311 StringBuilder sb = new StringBuilder();
jurzua
parents:
diff changeset
312 sb.append("\n\t#### saveEntityListAsNode ####\n");
jurzua
parents:
diff changeset
313 sb.append("\tentitiesSize=\t" + entitiesSize + "\n");
jurzua
parents:
diff changeset
314 sb.append("\tnodeSize=\t" + nodeSize + "\n");
jurzua
parents:
diff changeset
315 sb.append("\ttime[ms]=\t" + (System.currentTimeMillis() - start)
jurzua
parents:
diff changeset
316 + "\n");
jurzua
parents:
diff changeset
317 logger.info(sb.toString());
jurzua
parents:
diff changeset
318
jurzua
parents:
diff changeset
319 } catch (Exception e) {
jurzua
parents:
diff changeset
320 logger.error(e.getMessage(), e);
jurzua
parents:
diff changeset
321 e.printStackTrace();
jurzua
parents:
diff changeset
322 }
jurzua
parents:
diff changeset
323 }
jurzua
parents:
diff changeset
324
jurzua
parents:
diff changeset
325 private List<Node> generateNodeList(List<Entity> list) {
jurzua
parents:
diff changeset
326 List<Node> list0 = new ArrayList<Node>();
jurzua
parents:
diff changeset
327 for (Entity ent : list) {
jurzua
parents:
diff changeset
328 list0.add(ent);
jurzua
parents:
diff changeset
329 for (Attribute att : ent.getAttributes()) {
jurzua
parents:
diff changeset
330 list0.add(att);
jurzua
parents:
diff changeset
331 }
jurzua
parents:
diff changeset
332 for (Relation rel : ent.getSourceRelations()) {
jurzua
parents:
diff changeset
333 list0.add(rel);
jurzua
parents:
diff changeset
334 }
jurzua
parents:
diff changeset
335 for (Relation rel : ent.getTargetRelations()) {
jurzua
parents:
diff changeset
336 list0.add(rel);
jurzua
parents:
diff changeset
337 }
jurzua
parents:
diff changeset
338 }
jurzua
parents:
diff changeset
339 return list0;
jurzua
parents:
diff changeset
340 }
jurzua
parents:
diff changeset
341
jurzua
parents:
diff changeset
342 /**
jurzua
parents:
diff changeset
343 * @param nodeList
jurzua
parents:
diff changeset
344 */
jurzua
parents:
diff changeset
345 public void saveEntityListAsNodeWithoutContent(List<Entity> nodeList)
jurzua
parents:
diff changeset
346 throws Exception {
jurzua
parents:
diff changeset
347 long start = System.currentTimeMillis();
jurzua
parents:
diff changeset
348
jurzua
parents:
diff changeset
349 Session session = HibernateUtil.getSessionFactory().getCurrentSession();
jurzua
parents:
diff changeset
350 session.getTransaction().begin();
jurzua
parents:
diff changeset
351
jurzua
parents:
diff changeset
352 Sequence idSequence = this.getIdSequence(session);
jurzua
parents:
diff changeset
353 DecimalFormat df = new DecimalFormat("#.##");
jurzua
parents:
diff changeset
354 int counter = 0;
jurzua
parents:
diff changeset
355
jurzua
parents:
diff changeset
356 logger.debug("##### Saving Node List: " + nodeList.size() + " #####");
jurzua
parents:
diff changeset
357
jurzua
parents:
diff changeset
358 for (Entity node : nodeList) {
jurzua
parents:
diff changeset
359 node.autoNormalize();
jurzua
parents:
diff changeset
360 if (node.getId() == null)
jurzua
parents:
diff changeset
361 node.setId(idSequence.generateId());
jurzua
parents:
diff changeset
362 if (node.getRowId() == null)
jurzua
parents:
diff changeset
363 session.save(node);
jurzua
parents:
diff changeset
364 else
jurzua
parents:
diff changeset
365 session.merge(node);
jurzua
parents:
diff changeset
366 double percent = ((double) counter / (double) nodeList.size()) * 100.0;
jurzua
parents:
diff changeset
367 long diff = System.currentTimeMillis() - start;
jurzua
parents:
diff changeset
368 double min = (double) diff / (double) (60 * 1000);
jurzua
parents:
diff changeset
369
jurzua
parents:
diff changeset
370 if ((percent % 10) < 0.005) {
jurzua
parents:
diff changeset
371 logger.debug("\n[" + df.format(percent) + " %] counter: "
jurzua
parents:
diff changeset
372 + counter + " / " + nodeList.size());
jurzua
parents:
diff changeset
373
jurzua
parents:
diff changeset
374 logger.debug("Tempo: " + (double) counter / min);
jurzua
parents:
diff changeset
375 }
jurzua
parents:
diff changeset
376 counter++;
jurzua
parents:
diff changeset
377 }
jurzua
parents:
diff changeset
378
jurzua
parents:
diff changeset
379 session.save(idSequence);
jurzua
parents:
diff changeset
380 session.getTransaction().commit();
jurzua
parents:
diff changeset
381 }
jurzua
parents:
diff changeset
382
jurzua
parents:
diff changeset
383 public void deleteEntityList(List<Entity> entities) {
jurzua
parents:
diff changeset
384 try {
jurzua
parents:
diff changeset
385 Session session = HibernateUtil.getSessionFactory()
jurzua
parents:
diff changeset
386 .getCurrentSession();
jurzua
parents:
diff changeset
387 session.getTransaction().begin();
jurzua
parents:
diff changeset
388
jurzua
parents:
diff changeset
389 for (Entity ent : entities) {
jurzua
parents:
diff changeset
390 this.removePersistenceEntity(ent, session);
jurzua
parents:
diff changeset
391 }
jurzua
parents:
diff changeset
392
jurzua
parents:
diff changeset
393 session.getTransaction().commit();
jurzua
parents:
diff changeset
394 } catch (Exception e) {
jurzua
parents:
diff changeset
395 logger.error(e.getMessage(), e);
jurzua
parents:
diff changeset
396 // e.printStackTrace();
jurzua
parents:
diff changeset
397 }
jurzua
parents:
diff changeset
398 }
jurzua
parents:
diff changeset
399
jurzua
parents:
diff changeset
400 public void saveEntityList(List<Entity> entities) throws Exception {
jurzua
parents:
diff changeset
401 Session session = HibernateUtil.getSessionFactory().getCurrentSession();
jurzua
parents:
diff changeset
402 session.getTransaction().begin();
jurzua
parents:
diff changeset
403
jurzua
parents:
diff changeset
404 for (Entity entity : entities) {
jurzua
parents:
diff changeset
405 saveEntity0(session, entity);
jurzua
parents:
diff changeset
406 }
jurzua
parents:
diff changeset
407
jurzua
parents:
diff changeset
408 session.getTransaction().commit();
jurzua
parents:
diff changeset
409 }
jurzua
parents:
diff changeset
410
jurzua
parents:
diff changeset
411 public Map<Long, Long> saveEntityListAsNew(List<Entity> entities,
jurzua
parents:
diff changeset
412 Map<Long, Long> idMap) throws Exception {
jurzua
parents:
diff changeset
413
jurzua
parents:
diff changeset
414 Session session = HibernateUtil.getSessionFactory().getCurrentSession();
jurzua
parents:
diff changeset
415 session.getTransaction().begin();
jurzua
parents:
diff changeset
416 Sequence idSequence = this.getIdSequence(session);
jurzua
parents:
diff changeset
417
jurzua
parents:
diff changeset
418 for (Entity entity : entities) {
jurzua
parents:
diff changeset
419
jurzua
parents:
diff changeset
420 Long oldId = entity.getId();
jurzua
parents:
diff changeset
421 entity.resetId();
jurzua
parents:
diff changeset
422 entity.resetRowId();
jurzua
parents:
diff changeset
423 this.saveEntity0(session, entity);
jurzua
parents:
diff changeset
424 idMap.put(oldId, entity.getId());
jurzua
parents:
diff changeset
425 }
jurzua
parents:
diff changeset
426
jurzua
parents:
diff changeset
427 session.save(idSequence);
jurzua
parents:
diff changeset
428 session.getTransaction().commit();
jurzua
parents:
diff changeset
429 return idMap;
jurzua
parents:
diff changeset
430 }
jurzua
parents:
diff changeset
431
jurzua
parents:
diff changeset
432 /**
jurzua
parents:
diff changeset
433 * <p>
jurzua
parents:
diff changeset
434 * This method deletes all entities by type (TBox/ABox), it means the method
jurzua
parents:
diff changeset
435 * deletes either all concepts or all assertions.
jurzua
parents:
diff changeset
436 * </p>
jurzua
parents:
diff changeset
437 * <p>
jurzua
parents:
diff changeset
438 * The history of every deleted entity will be removed too.
jurzua
parents:
diff changeset
439 * </p>
jurzua
parents:
diff changeset
440 *
jurzua
parents:
diff changeset
441 * @param type
jurzua
parents:
diff changeset
442 * Node.TYPE_TBOX or Node.TYPE_ABOX
jurzua
parents:
diff changeset
443 */
jurzua
parents:
diff changeset
444 @Deprecated
jurzua
parents:
diff changeset
445 public void deleteEntities(Long id, String type, Boolean deleteHistory) {
jurzua
parents:
diff changeset
446 if (!(Node.TYPE_ABOX.equals(type) || Node.TYPE_TBOX.equals(type))) {
jurzua
parents:
diff changeset
447 throw new IllegalArgumentException(
jurzua
parents:
diff changeset
448 "The parameter 'type' should be either: " + Node.TYPE_ABOX
jurzua
parents:
diff changeset
449 + " or " + Node.TYPE_TBOX + ", but was: " + type);
jurzua
parents:
diff changeset
450 }
jurzua
parents:
diff changeset
451
jurzua
parents:
diff changeset
452 List<Entity> entList = this.getEntities(id,
jurzua
parents:
diff changeset
453 Node.SYS_STATUS_CURRENT_VERSION, type, null);
jurzua
parents:
diff changeset
454
jurzua
parents:
diff changeset
455 // loading previous versions
jurzua
parents:
diff changeset
456 List<Entity> historyEntList = new ArrayList<Entity>();
jurzua
parents:
diff changeset
457 if (deleteHistory) {
jurzua
parents:
diff changeset
458 for (Entity ent : entList) {
jurzua
parents:
diff changeset
459 historyEntList.addAll(this.getEntities(ent.getId(),
jurzua
parents:
diff changeset
460 Node.SYS_STATUS_PREVIOUS_VERSION, type, null));
jurzua
parents:
diff changeset
461 }
jurzua
parents:
diff changeset
462 }
jurzua
parents:
diff changeset
463
jurzua
parents:
diff changeset
464 try {
jurzua
parents:
diff changeset
465 Session session = HibernateUtil.getSessionFactory()
jurzua
parents:
diff changeset
466 .getCurrentSession();
jurzua
parents:
diff changeset
467 session.getTransaction().begin();
jurzua
parents:
diff changeset
468
jurzua
parents:
diff changeset
469 for (Entity ent : entList) {
jurzua
parents:
diff changeset
470 this.removePersistenceEntity(ent, session);
jurzua
parents:
diff changeset
471 }
jurzua
parents:
diff changeset
472 if (deleteHistory) {
jurzua
parents:
diff changeset
473 for (Entity ent : historyEntList) {
jurzua
parents:
diff changeset
474 this.removePersistenceEntity(ent, session);
jurzua
parents:
diff changeset
475 }
jurzua
parents:
diff changeset
476 }
jurzua
parents:
diff changeset
477
jurzua
parents:
diff changeset
478 session.getTransaction().commit();
jurzua
parents:
diff changeset
479 } catch (Exception e) {
jurzua
parents:
diff changeset
480 logger.error(e.getMessage(), e);
jurzua
parents:
diff changeset
481 // e.printStackTrace();
jurzua
parents:
diff changeset
482 }
jurzua
parents:
diff changeset
483 }
jurzua
parents:
diff changeset
484
jurzua
parents:
diff changeset
485 /**
jurzua
parents:
diff changeset
486 * This deleting is made using JDBC and not hibernate. The history is too
jurzua
parents:
diff changeset
487 * removed by this method. TODO test what could happen with the hibernate
jurzua
parents:
diff changeset
488 * cache
jurzua
parents:
diff changeset
489 *
jurzua
parents:
diff changeset
490 * @param ent
jurzua
parents:
diff changeset
491 * @param session
jurzua
parents:
diff changeset
492 */
jurzua
parents:
diff changeset
493 private void removePersistenceEntity(Entity ent, Session session) {
jurzua
parents:
diff changeset
494 for (Attribute att : ent.getAttributes()) {
jurzua
parents:
diff changeset
495 // session.delete(att);
jurzua
parents:
diff changeset
496 removeNodesById(att.getId(), session);
jurzua
parents:
diff changeset
497 for (View view : att.getViews()) {
jurzua
parents:
diff changeset
498 // session.delete(view);
jurzua
parents:
diff changeset
499 removeNodesById(view.getId(), session);
jurzua
parents:
diff changeset
500 }
jurzua
parents:
diff changeset
501 }
jurzua
parents:
diff changeset
502 for (Relation rel : ent.getSourceRelations()) {
jurzua
parents:
diff changeset
503 // session.delete(rel);
jurzua
parents:
diff changeset
504 removeNodesById(rel.getId(), session);
jurzua
parents:
diff changeset
505 for (View view : rel.getViews()) {
jurzua
parents:
diff changeset
506 // session.delete(view);
jurzua
parents:
diff changeset
507 removeNodesById(view.getId(), session);
jurzua
parents:
diff changeset
508 }
jurzua
parents:
diff changeset
509 }
jurzua
parents:
diff changeset
510 for (Relation rel : ent.getTargetRelations()) {
jurzua
parents:
diff changeset
511 // session.delete(rel);
jurzua
parents:
diff changeset
512 removeNodesById(rel.getId(), session);
jurzua
parents:
diff changeset
513 for (View view : rel.getViews()) {
jurzua
parents:
diff changeset
514 // session.delete(view);
jurzua
parents:
diff changeset
515 removeNodesById(view.getId(), session);
jurzua
parents:
diff changeset
516 }
jurzua
parents:
diff changeset
517 }
jurzua
parents:
diff changeset
518 for (View view : ent.getViews()) {
jurzua
parents:
diff changeset
519 // session.delete(view);
jurzua
parents:
diff changeset
520 removeNodesById(view.getId(), session);
jurzua
parents:
diff changeset
521 }
jurzua
parents:
diff changeset
522 // session.delete(ent);
jurzua
parents:
diff changeset
523 removeNodesById(ent.getId(), session);
jurzua
parents:
diff changeset
524 }
jurzua
parents:
diff changeset
525
jurzua
parents:
diff changeset
526 private int removeNodesById(Long id, Session session) {
jurzua
parents:
diff changeset
527 String sql = "DELETE FROM Node WHERE id = :id";
jurzua
parents:
diff changeset
528 Query query = session.createQuery(sql);
jurzua
parents:
diff changeset
529 query.setLong("id", id);
jurzua
parents:
diff changeset
530 return query.executeUpdate();
jurzua
parents:
diff changeset
531 }
jurzua
parents:
diff changeset
532
jurzua
parents:
diff changeset
533 /**
jurzua
parents:
diff changeset
534 * <p>
jurzua
parents:
diff changeset
535 * Changes the system status of the entity from CURRENT_VERSION to
jurzua
parents:
diff changeset
536 * PREVIOUS_VERSION.
jurzua
parents:
diff changeset
537 * </p>
jurzua
parents:
diff changeset
538 *
jurzua
parents:
diff changeset
539 * <p>
jurzua
parents:
diff changeset
540 * It means, the entity will stay in the DB, but the it will not be visible
jurzua
parents:
diff changeset
541 * by the ordinary methods.
jurzua
parents:
diff changeset
542 * </p>
jurzua
parents:
diff changeset
543 *
jurzua
parents:
diff changeset
544 * @param entity
jurzua
parents:
diff changeset
545 */
jurzua
parents:
diff changeset
546 public void removeEntCurrentVersion(Long entId, String type)
jurzua
parents:
diff changeset
547 throws Exception {
jurzua
parents:
diff changeset
548 logger.info("Deleting entity [ID=" + entId + ", type=" + type
jurzua
parents:
diff changeset
549 + "]. But keeping history in DB.");
jurzua
parents:
diff changeset
550 Session session = HibernateUtil.getSessionFactory().getCurrentSession();
jurzua
parents:
diff changeset
551 session.getTransaction().begin();
jurzua
parents:
diff changeset
552
jurzua
parents:
diff changeset
553 if (entId != null) {
jurzua
parents:
diff changeset
554 //this method get the current version. Related to the relation, the time_modification is not consider,
jurzua
parents:
diff changeset
555 //because it it producing problems.
jurzua
parents:
diff changeset
556 List<Entity> previousEntityList =
jurzua
parents:
diff changeset
557 this.getEntities(session, entId,
jurzua
parents:
diff changeset
558 Node.SYS_STATUS_CURRENT_VERSION,
jurzua
parents:
diff changeset
559 type, null, false);
jurzua
parents:
diff changeset
560 if (previousEntityList.size() > 0) {
jurzua
parents:
diff changeset
561 if (previousEntityList.size() > 1) {
jurzua
parents:
diff changeset
562 System.err
jurzua
parents:
diff changeset
563 .println("[PersistenceService.saveEntity] found more than one current entities!");
jurzua
parents:
diff changeset
564 }
jurzua
parents:
diff changeset
565
jurzua
parents:
diff changeset
566 Entity previousEntity = previousEntityList.get(0);
jurzua
parents:
diff changeset
567 logger.info("Saving previous entity: " + previousEntity);
33
e52f593f9e0d new transaction logger "openmind.transactionlog" logging entity save actions and their data.
casties
parents: 27
diff changeset
568 this.persistEntityAsPrevious(session, previousEntity);
1
jurzua
parents:
diff changeset
569 }
jurzua
parents:
diff changeset
570 }
jurzua
parents:
diff changeset
571 session.getTransaction().commit();
jurzua
parents:
diff changeset
572 }
jurzua
parents:
diff changeset
573
jurzua
parents:
diff changeset
574
jurzua
parents:
diff changeset
575 /**
33
e52f593f9e0d new transaction logger "openmind.transactionlog" logging entity save actions and their data.
casties
parents: 27
diff changeset
576 * Save the entity to the database.
e52f593f9e0d new transaction logger "openmind.transactionlog" logging entity save actions and their data.
casties
parents: 27
diff changeset
577 *
e52f593f9e0d new transaction logger "openmind.transactionlog" logging entity save actions and their data.
casties
parents: 27
diff changeset
578 * Creates a new version of the entity. Runs in a transaction.
1
jurzua
parents:
diff changeset
579 *
jurzua
parents:
diff changeset
580 * @param entity
jurzua
parents:
diff changeset
581 * @return
jurzua
parents:
diff changeset
582 */
jurzua
parents:
diff changeset
583 public void saveEntity(Entity entity) throws Exception {
jurzua
parents:
diff changeset
584
jurzua
parents:
diff changeset
585 Session session = HibernateUtil.getSessionFactory().getCurrentSession();
jurzua
parents:
diff changeset
586 session.getTransaction().begin();
jurzua
parents:
diff changeset
587
jurzua
parents:
diff changeset
588 saveEntity0(session, entity);
jurzua
parents:
diff changeset
589
jurzua
parents:
diff changeset
590 session.getTransaction().commit();
jurzua
parents:
diff changeset
591
jurzua
parents:
diff changeset
592 }
jurzua
parents:
diff changeset
593
33
e52f593f9e0d new transaction logger "openmind.transactionlog" logging entity save actions and their data.
casties
parents: 27
diff changeset
594 /**
e52f593f9e0d new transaction logger "openmind.transactionlog" logging entity save actions and their data.
casties
parents: 27
diff changeset
595 * Save the entity to the database using the given session.
e52f593f9e0d new transaction logger "openmind.transactionlog" logging entity save actions and their data.
casties
parents: 27
diff changeset
596 *
e52f593f9e0d new transaction logger "openmind.transactionlog" logging entity save actions and their data.
casties
parents: 27
diff changeset
597 * Creates a new version and sets the existing entity to PREVIOUS_VERSION.
e52f593f9e0d new transaction logger "openmind.transactionlog" logging entity save actions and their data.
casties
parents: 27
diff changeset
598 *
e52f593f9e0d new transaction logger "openmind.transactionlog" logging entity save actions and their data.
casties
parents: 27
diff changeset
599 * @param session
e52f593f9e0d new transaction logger "openmind.transactionlog" logging entity save actions and their data.
casties
parents: 27
diff changeset
600 * @param entity
e52f593f9e0d new transaction logger "openmind.transactionlog" logging entity save actions and their data.
casties
parents: 27
diff changeset
601 * @throws Exception
e52f593f9e0d new transaction logger "openmind.transactionlog" logging entity save actions and their data.
casties
parents: 27
diff changeset
602 */
1
jurzua
parents:
diff changeset
603 private void saveEntity0(Session session, Entity entity) throws Exception {
jurzua
parents:
diff changeset
604 if (entity.getId() != null) {
jurzua
parents:
diff changeset
605 List<Entity> previousEntityList = this.getEntities(session, entity.getId(), Node.SYS_STATUS_CURRENT_VERSION, entity.getType(), null, false);
jurzua
parents:
diff changeset
606 if (previousEntityList.size() > 0) {
jurzua
parents:
diff changeset
607 if (previousEntityList.size() > 1) {
jurzua
parents:
diff changeset
608 logger.error("[PersistenceService.saveEntity] found more than one current entities!");
jurzua
parents:
diff changeset
609 }
jurzua
parents:
diff changeset
610
jurzua
parents:
diff changeset
611 Entity previousEntity = previousEntityList.get(0);
jurzua
parents:
diff changeset
612 logger.info("Saving previous entity: " + previousEntity);
33
e52f593f9e0d new transaction logger "openmind.transactionlog" logging entity save actions and their data.
casties
parents: 27
diff changeset
613 this.persistEntityAsPrevious(session, previousEntity);
1
jurzua
parents:
diff changeset
614 }
jurzua
parents:
diff changeset
615 }
jurzua
parents:
diff changeset
616 this.saveCurrentEntity(session, entity, null);
jurzua
parents:
diff changeset
617 }
jurzua
parents:
diff changeset
618
33
e52f593f9e0d new transaction logger "openmind.transactionlog" logging entity save actions and their data.
casties
parents: 27
diff changeset
619 /**
e52f593f9e0d new transaction logger "openmind.transactionlog" logging entity save actions and their data.
casties
parents: 27
diff changeset
620 * Save the entity as (new) current version using the given session.
e52f593f9e0d new transaction logger "openmind.transactionlog" logging entity save actions and their data.
casties
parents: 27
diff changeset
621 *
e52f593f9e0d new transaction logger "openmind.transactionlog" logging entity save actions and their data.
casties
parents: 27
diff changeset
622 * Sets system_status to CURRENT_VERSION and updates row_id, version, modification_time,
e52f593f9e0d new transaction logger "openmind.transactionlog" logging entity save actions and their data.
casties
parents: 27
diff changeset
623 * etc.
e52f593f9e0d new transaction logger "openmind.transactionlog" logging entity save actions and their data.
casties
parents: 27
diff changeset
624 *
e52f593f9e0d new transaction logger "openmind.transactionlog" logging entity save actions and their data.
casties
parents: 27
diff changeset
625 * @param session
e52f593f9e0d new transaction logger "openmind.transactionlog" logging entity save actions and their data.
casties
parents: 27
diff changeset
626 * @param entity
e52f593f9e0d new transaction logger "openmind.transactionlog" logging entity save actions and their data.
casties
parents: 27
diff changeset
627 * @param idSequence
e52f593f9e0d new transaction logger "openmind.transactionlog" logging entity save actions and their data.
casties
parents: 27
diff changeset
628 * @throws Exception
e52f593f9e0d new transaction logger "openmind.transactionlog" logging entity save actions and their data.
casties
parents: 27
diff changeset
629 */
1
jurzua
parents:
diff changeset
630 private void saveCurrentEntity(Session session, Entity entity,
jurzua
parents:
diff changeset
631 Sequence idSequence) throws Exception {
jurzua
parents:
diff changeset
632 Long time = System.currentTimeMillis();
jurzua
parents:
diff changeset
633 entity.setSystemStatus(Node.SYS_STATUS_CURRENT_VERSION);
jurzua
parents:
diff changeset
634 entity.resetRowId();
jurzua
parents:
diff changeset
635 entity.increaseVersion();
jurzua
parents:
diff changeset
636 entity.setObjectClass(entity.getObjectClass());
jurzua
parents:
diff changeset
637 entity.setModificationTime(time);
jurzua
parents:
diff changeset
638 entity.setType(entity.getType());
jurzua
parents:
diff changeset
639 entity.setUser(entity.getUser());
jurzua
parents:
diff changeset
640 entity.autoNormalize();
jurzua
parents:
diff changeset
641 // generating of id, connecting rels, atts and views to the entity
jurzua
parents:
diff changeset
642 this.prepareEntity(session, entity, idSequence);
33
e52f593f9e0d new transaction logger "openmind.transactionlog" logging entity save actions and their data.
casties
parents: 27
diff changeset
643 this.persistEntity(session, entity);
1
jurzua
parents:
diff changeset
644 }
jurzua
parents:
diff changeset
645
jurzua
parents:
diff changeset
646 /**
33
e52f593f9e0d new transaction logger "openmind.transactionlog" logging entity save actions and their data.
casties
parents: 27
diff changeset
647 * Update the entity to prepare it for persisting.
e52f593f9e0d new transaction logger "openmind.transactionlog" logging entity save actions and their data.
casties
parents: 27
diff changeset
648 *
e52f593f9e0d new transaction logger "openmind.transactionlog" logging entity save actions and their data.
casties
parents: 27
diff changeset
649 * If the ID is null new IDs will be assigned for the entity and its
e52f593f9e0d new transaction logger "openmind.transactionlog" logging entity save actions and their data.
casties
parents: 27
diff changeset
650 * attributes and relations.
e52f593f9e0d new transaction logger "openmind.transactionlog" logging entity save actions and their data.
casties
parents: 27
diff changeset
651 * The modification time is propagated from the entity to its
e52f593f9e0d new transaction logger "openmind.transactionlog" logging entity save actions and their data.
casties
parents: 27
diff changeset
652 * attributes and relations.
e52f593f9e0d new transaction logger "openmind.transactionlog" logging entity save actions and their data.
casties
parents: 27
diff changeset
653 * Own-values are normalized.
1
jurzua
parents:
diff changeset
654 *
jurzua
parents:
diff changeset
655 * @param session
jurzua
parents:
diff changeset
656 * @param entity
jurzua
parents:
diff changeset
657 * @return
jurzua
parents:
diff changeset
658 */
jurzua
parents:
diff changeset
659 private Entity prepareEntity(Session session, Entity entity,
jurzua
parents:
diff changeset
660 Sequence idSequence) {
jurzua
parents:
diff changeset
661
jurzua
parents:
diff changeset
662 if (entity.getId() == null) {
jurzua
parents:
diff changeset
663 if (idSequence == null)
jurzua
parents:
diff changeset
664 entity.setId(this.generateId(session));
jurzua
parents:
diff changeset
665 else
jurzua
parents:
diff changeset
666 entity.setId(idSequence.generateId());
jurzua
parents:
diff changeset
667 }
jurzua
parents:
diff changeset
668
jurzua
parents:
diff changeset
669 for (Attribute att : entity.getAttributes()) {
jurzua
parents:
diff changeset
670 if (att.getId() == null) {
jurzua
parents:
diff changeset
671 if (idSequence == null)
jurzua
parents:
diff changeset
672 att.setId(this.generateId(session));
jurzua
parents:
diff changeset
673 else
jurzua
parents:
diff changeset
674 att.setId(idSequence.generateId());
jurzua
parents:
diff changeset
675 }
25
c23ae718fdd3 clean up and more logging when saving attributes.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents: 1
diff changeset
676 logger.debug("setting att source to entity: "+entity);
1
jurzua
parents:
diff changeset
677 att.setSourceId(entity.getId());
jurzua
parents:
diff changeset
678 att.setSourceModif(entity.getModificationTime());
jurzua
parents:
diff changeset
679 att.setSourceObjectClass(entity.getObjectClass());
jurzua
parents:
diff changeset
680 att.autoNormalize();
jurzua
parents:
diff changeset
681 }
jurzua
parents:
diff changeset
682
jurzua
parents:
diff changeset
683 // TODO normalize the name of the relations??
jurzua
parents:
diff changeset
684 for (Relation rel : entity.getSourceRelations()) {
jurzua
parents:
diff changeset
685 if (rel.getId() == null) {
jurzua
parents:
diff changeset
686 if (idSequence == null)
jurzua
parents:
diff changeset
687 rel.setId(this.generateId(session));
jurzua
parents:
diff changeset
688 else
jurzua
parents:
diff changeset
689 rel.setId(idSequence.generateId());
jurzua
parents:
diff changeset
690 }
jurzua
parents:
diff changeset
691 rel.setSourceId(entity.getId());
jurzua
parents:
diff changeset
692 rel.setSourceModif(entity.getModificationTime());
jurzua
parents:
diff changeset
693 rel.setSourceObjectClass(entity.getObjectClass());
jurzua
parents:
diff changeset
694 rel.autoNormalize();
jurzua
parents:
diff changeset
695 if(StringUtils.equals(entity.getType(), Node.TYPE_ABOX)){
jurzua
parents:
diff changeset
696 rel.setObjectClass(rel.getOwnValue());
jurzua
parents:
diff changeset
697 }else if(StringUtils.equals(entity.getType(), Node.TYPE_TBOX)){
jurzua
parents:
diff changeset
698 rel.setObjectClass(Node.TYPE_TBOX);
jurzua
parents:
diff changeset
699 }
jurzua
parents:
diff changeset
700
jurzua
parents:
diff changeset
701 // new Attributes for relations
jurzua
parents:
diff changeset
702 for (Attribute att : rel.getAttributes()) {
jurzua
parents:
diff changeset
703 if (att.getId() == null) {
jurzua
parents:
diff changeset
704 if (idSequence == null)
jurzua
parents:
diff changeset
705 att.setId(this.generateId(session));
jurzua
parents:
diff changeset
706 else
jurzua
parents:
diff changeset
707 att.setId(idSequence.generateId());
jurzua
parents:
diff changeset
708 }
25
c23ae718fdd3 clean up and more logging when saving attributes.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents: 1
diff changeset
709 logger.debug("setting att source to (source)relation: "+rel);
1
jurzua
parents:
diff changeset
710 att.setSourceId(rel.getId());
jurzua
parents:
diff changeset
711 att.setSourceModif(rel.getModificationTime());
jurzua
parents:
diff changeset
712 // TODO this should be analyzed
jurzua
parents:
diff changeset
713 att.setSourceObjectClass(rel.getOwnValue());
jurzua
parents:
diff changeset
714 att.autoNormalize();
jurzua
parents:
diff changeset
715 }
jurzua
parents:
diff changeset
716 }
jurzua
parents:
diff changeset
717
jurzua
parents:
diff changeset
718 for (Relation rel : entity.getTargetRelations()) {
jurzua
parents:
diff changeset
719 if (rel.getId() == null) {
jurzua
parents:
diff changeset
720 if (idSequence == null)
jurzua
parents:
diff changeset
721 rel.setId(this.generateId(session));
jurzua
parents:
diff changeset
722 else
jurzua
parents:
diff changeset
723 rel.setId(idSequence.generateId());
jurzua
parents:
diff changeset
724 }
jurzua
parents:
diff changeset
725 rel.setTargetId(entity.getId());
jurzua
parents:
diff changeset
726 rel.setTargetModif(entity.getModificationTime());
jurzua
parents:
diff changeset
727 rel.setTargetObjectClass(entity.getObjectClass());
jurzua
parents:
diff changeset
728 rel.autoNormalize();
jurzua
parents:
diff changeset
729 if(StringUtils.equals(entity.getType(), Node.TYPE_ABOX)){
jurzua
parents:
diff changeset
730 rel.setObjectClass(rel.getOwnValue());
jurzua
parents:
diff changeset
731 }else if(StringUtils.equals(entity.getType(), Node.TYPE_TBOX)){
jurzua
parents:
diff changeset
732 rel.setObjectClass(Node.TYPE_TBOX);
jurzua
parents:
diff changeset
733 }
jurzua
parents:
diff changeset
734 // new Attributes for relations
jurzua
parents:
diff changeset
735 for (Attribute att : rel.getAttributes()) {
jurzua
parents:
diff changeset
736 if (att.getId() == null) {
jurzua
parents:
diff changeset
737 if (idSequence == null)
jurzua
parents:
diff changeset
738 att.setId(this.generateId(session));
jurzua
parents:
diff changeset
739 else
jurzua
parents:
diff changeset
740 att.setId(idSequence.generateId());
jurzua
parents:
diff changeset
741 }
25
c23ae718fdd3 clean up and more logging when saving attributes.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents: 1
diff changeset
742 logger.debug("setting att source to (target)relation: "+rel);
1
jurzua
parents:
diff changeset
743 att.setSourceId(rel.getId());
jurzua
parents:
diff changeset
744 att.setSourceModif(rel.getModificationTime());
jurzua
parents:
diff changeset
745 // TODO this should be analyzed
jurzua
parents:
diff changeset
746 att.setSourceObjectClass(rel.getOwnValue());
jurzua
parents:
diff changeset
747 att.autoNormalize();
jurzua
parents:
diff changeset
748 }
jurzua
parents:
diff changeset
749 }
jurzua
parents:
diff changeset
750 for (View view : entity.getViews()) {
jurzua
parents:
diff changeset
751 if (view.getId() == null) {
jurzua
parents:
diff changeset
752 if (idSequence == null)
jurzua
parents:
diff changeset
753 view.setId(this.generateId(session));
jurzua
parents:
diff changeset
754 else
jurzua
parents:
diff changeset
755 view.setId(idSequence.generateId());
jurzua
parents:
diff changeset
756 }
jurzua
parents:
diff changeset
757 view.setSourceId(entity.getId());
jurzua
parents:
diff changeset
758 view.setSourceModif(entity.getModificationTime());
jurzua
parents:
diff changeset
759 view.setSourceObjectClass(entity.getObjectClass());
jurzua
parents:
diff changeset
760 view.autoNormalize();
jurzua
parents:
diff changeset
761 }
jurzua
parents:
diff changeset
762 return entity;
jurzua
parents:
diff changeset
763 }
jurzua
parents:
diff changeset
764
jurzua
parents:
diff changeset
765 /**
33
e52f593f9e0d new transaction logger "openmind.transactionlog" logging entity save actions and their data.
casties
parents: 27
diff changeset
766 * Set an entities' system state to PREVIOUS_VERSION and persist it.
e52f593f9e0d new transaction logger "openmind.transactionlog" logging entity save actions and their data.
casties
parents: 27
diff changeset
767 *
e52f593f9e0d new transaction logger "openmind.transactionlog" logging entity save actions and their data.
casties
parents: 27
diff changeset
768 * Also persists the entities' attributes and relations.
1
jurzua
parents:
diff changeset
769 *
jurzua
parents:
diff changeset
770 * @param session
jurzua
parents:
diff changeset
771 * @param entity
jurzua
parents:
diff changeset
772 */
33
e52f593f9e0d new transaction logger "openmind.transactionlog" logging entity save actions and their data.
casties
parents: 27
diff changeset
773 private void persistEntityAsPrevious(Session session, Entity entity) {
1
jurzua
parents:
diff changeset
774 entity.setSystemStatus(Node.SYS_STATUS_PREVIOUS_VERSION);
33
e52f593f9e0d new transaction logger "openmind.transactionlog" logging entity save actions and their data.
casties
parents: 27
diff changeset
775 txLog.debug("* START save previous entity...");
e52f593f9e0d new transaction logger "openmind.transactionlog" logging entity save actions and their data.
casties
parents: 27
diff changeset
776 txLog.info("save previous entity: "+entity.toEncString());
1
jurzua
parents:
diff changeset
777 session.save(entity);
jurzua
parents:
diff changeset
778 for (Attribute attribute : entity.getAttributes()) {
33
e52f593f9e0d new transaction logger "openmind.transactionlog" logging entity save actions and their data.
casties
parents: 27
diff changeset
779 txLog.info("save previous entity attribute: "+attribute.toEncString());
1
jurzua
parents:
diff changeset
780 session.save(attribute);
jurzua
parents:
diff changeset
781 }
jurzua
parents:
diff changeset
782 for (Relation rel : entity.getSourceRelations()) {
33
e52f593f9e0d new transaction logger "openmind.transactionlog" logging entity save actions and their data.
casties
parents: 27
diff changeset
783 txLog.info("save previous source relation: "+rel.toEncString());
1
jurzua
parents:
diff changeset
784 session.save(rel);
jurzua
parents:
diff changeset
785 for (Attribute att : rel.getAttributes()) {
33
e52f593f9e0d new transaction logger "openmind.transactionlog" logging entity save actions and their data.
casties
parents: 27
diff changeset
786 txLog.info("save previous source relation attribute: "+att.toEncString());
1
jurzua
parents:
diff changeset
787 session.save(att);
jurzua
parents:
diff changeset
788 }
jurzua
parents:
diff changeset
789 }
jurzua
parents:
diff changeset
790 for (Relation rel : entity.getTargetRelations()) {
33
e52f593f9e0d new transaction logger "openmind.transactionlog" logging entity save actions and their data.
casties
parents: 27
diff changeset
791 txLog.info("save previous target relation: "+rel.toEncString());
1
jurzua
parents:
diff changeset
792 session.save(rel);
25
c23ae718fdd3 clean up and more logging when saving attributes.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents: 1
diff changeset
793 for (Attribute att : rel.getAttributes()) {
33
e52f593f9e0d new transaction logger "openmind.transactionlog" logging entity save actions and their data.
casties
parents: 27
diff changeset
794 txLog.info("save previous target relation attribute: "+att.toEncString());
25
c23ae718fdd3 clean up and more logging when saving attributes.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents: 1
diff changeset
795 session.save(att);
c23ae718fdd3 clean up and more logging when saving attributes.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents: 1
diff changeset
796 }
1
jurzua
parents:
diff changeset
797 }
jurzua
parents:
diff changeset
798 for (View view : entity.getViews()) {
jurzua
parents:
diff changeset
799 session.save(view);
jurzua
parents:
diff changeset
800 }
33
e52f593f9e0d new transaction logger "openmind.transactionlog" logging entity save actions and their data.
casties
parents: 27
diff changeset
801 txLog.debug("* End ...save previous entity");
1
jurzua
parents:
diff changeset
802 }
jurzua
parents:
diff changeset
803
33
e52f593f9e0d new transaction logger "openmind.transactionlog" logging entity save actions and their data.
casties
parents: 27
diff changeset
804 /**
e52f593f9e0d new transaction logger "openmind.transactionlog" logging entity save actions and their data.
casties
parents: 27
diff changeset
805 * Persist a (current) entity and its attributes and relations.
e52f593f9e0d new transaction logger "openmind.transactionlog" logging entity save actions and their data.
casties
parents: 27
diff changeset
806 *
e52f593f9e0d new transaction logger "openmind.transactionlog" logging entity save actions and their data.
casties
parents: 27
diff changeset
807 * @param session
e52f593f9e0d new transaction logger "openmind.transactionlog" logging entity save actions and their data.
casties
parents: 27
diff changeset
808 * @param entity
e52f593f9e0d new transaction logger "openmind.transactionlog" logging entity save actions and their data.
casties
parents: 27
diff changeset
809 * @throws Exception
e52f593f9e0d new transaction logger "openmind.transactionlog" logging entity save actions and their data.
casties
parents: 27
diff changeset
810 */
e52f593f9e0d new transaction logger "openmind.transactionlog" logging entity save actions and their data.
casties
parents: 27
diff changeset
811 private void persistEntity(Session session, Entity entity) throws Exception {
e52f593f9e0d new transaction logger "openmind.transactionlog" logging entity save actions and their data.
casties
parents: 27
diff changeset
812 txLog.info("* START save entity...");
e52f593f9e0d new transaction logger "openmind.transactionlog" logging entity save actions and their data.
casties
parents: 27
diff changeset
813 txLog.info("save entity: "+entity.toEncString());
1
jurzua
parents:
diff changeset
814 session.save(entity);
jurzua
parents:
diff changeset
815 for (Attribute attribute : entity.getAttributes()) {
33
e52f593f9e0d new transaction logger "openmind.transactionlog" logging entity save actions and their data.
casties
parents: 27
diff changeset
816 txLog.info("save entity attribute: "+attribute.toEncString());
1
jurzua
parents:
diff changeset
817 session.save(attribute);
jurzua
parents:
diff changeset
818 }
jurzua
parents:
diff changeset
819 for (Relation rel : entity.getSourceRelations()) {
jurzua
parents:
diff changeset
820 rel.setSource(entity);
jurzua
parents:
diff changeset
821 if (rel.getSourceId() == null || rel.getTargetId() == null) {
jurzua
parents:
diff changeset
822 throw new IllegalStateException(
jurzua
parents:
diff changeset
823 "Either the sourceId or the targetId was not initialized to the source relation: "
jurzua
parents:
diff changeset
824 + rel.getOwnValue());
jurzua
parents:
diff changeset
825 }
33
e52f593f9e0d new transaction logger "openmind.transactionlog" logging entity save actions and their data.
casties
parents: 27
diff changeset
826 txLog.info("save source relation: "+rel.toEncString());
1
jurzua
parents:
diff changeset
827 session.save(rel);
jurzua
parents:
diff changeset
828 for (Attribute att : rel.getAttributes()) {
33
e52f593f9e0d new transaction logger "openmind.transactionlog" logging entity save actions and their data.
casties
parents: 27
diff changeset
829 txLog.info("save source relation attribute: "+att.toEncString());
1
jurzua
parents:
diff changeset
830 session.save(att);
jurzua
parents:
diff changeset
831 }
jurzua
parents:
diff changeset
832 }
jurzua
parents:
diff changeset
833 for (Relation rel : entity.getTargetRelations()) {
jurzua
parents:
diff changeset
834 rel.setTarget(entity);
jurzua
parents:
diff changeset
835 if (rel.getSourceId() == null || rel.getTargetId() == null) {
jurzua
parents:
diff changeset
836 throw new IllegalStateException(
25
c23ae718fdd3 clean up and more logging when saving attributes.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents: 1
diff changeset
837 "Either the sourceId or the targetId was not initialized to the target relation: "
1
jurzua
parents:
diff changeset
838 + rel.getOwnValue());
jurzua
parents:
diff changeset
839 }
33
e52f593f9e0d new transaction logger "openmind.transactionlog" logging entity save actions and their data.
casties
parents: 27
diff changeset
840 txLog.info("save target relation: "+rel.toEncString());
1
jurzua
parents:
diff changeset
841 session.save(rel);
25
c23ae718fdd3 clean up and more logging when saving attributes.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents: 1
diff changeset
842 for (Attribute att : rel.getAttributes()) {
33
e52f593f9e0d new transaction logger "openmind.transactionlog" logging entity save actions and their data.
casties
parents: 27
diff changeset
843 txLog.info("save target relation attribute: "+att.toEncString());
25
c23ae718fdd3 clean up and more logging when saving attributes.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents: 1
diff changeset
844 session.save(att);
c23ae718fdd3 clean up and more logging when saving attributes.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents: 1
diff changeset
845 }
1
jurzua
parents:
diff changeset
846 }
jurzua
parents:
diff changeset
847
jurzua
parents:
diff changeset
848 // Call of ownValue Generator.
jurzua
parents:
diff changeset
849 // TODO: the method should be used always? what would happen if the
jurzua
parents:
diff changeset
850 // ownValue returns null?
33
e52f593f9e0d new transaction logger "openmind.transactionlog" logging entity save actions and their data.
casties
parents: 27
diff changeset
851 if (!isImportMode()) {
e52f593f9e0d new transaction logger "openmind.transactionlog" logging entity save actions and their data.
casties
parents: 27
diff changeset
852 String ownValue = this.getOwnValueGenerator().generateOwnValue(entity, session);
1
jurzua
parents:
diff changeset
853 if (StringUtils.isNotEmpty(ownValue)) {
jurzua
parents:
diff changeset
854 entity.setOwnValue(ownValue);
jurzua
parents:
diff changeset
855 entity.autoNormalize();
jurzua
parents:
diff changeset
856 session.save(entity);
jurzua
parents:
diff changeset
857 }
jurzua
parents:
diff changeset
858 }
33
e52f593f9e0d new transaction logger "openmind.transactionlog" logging entity save actions and their data.
casties
parents: 27
diff changeset
859 txLog.debug("* ...END save entity");
1
jurzua
parents:
diff changeset
860 }
jurzua
parents:
diff changeset
861
jurzua
parents:
diff changeset
862 public OwnValueGenerator getOwnValueGenerator() {
jurzua
parents:
diff changeset
863 return ownValueGenerator;
jurzua
parents:
diff changeset
864 }
jurzua
parents:
diff changeset
865
jurzua
parents:
diff changeset
866 public void setOwnValueGenerator(OwnValueGenerator ownValueGenerator) {
jurzua
parents:
diff changeset
867 this.ownValueGenerator = ownValueGenerator;
jurzua
parents:
diff changeset
868 }
jurzua
parents:
diff changeset
869
jurzua
parents:
diff changeset
870 /**
jurzua
parents:
diff changeset
871 * <p>
33
e52f593f9e0d new transaction logger "openmind.transactionlog" logging entity save actions and their data.
casties
parents: 27
diff changeset
872 * Returns entities with their corresponding contents.
1
jurzua
parents:
diff changeset
873 * </p>
jurzua
parents:
diff changeset
874 *
jurzua
parents:
diff changeset
875 * @param session
jurzua
parents:
diff changeset
876 * @param id
jurzua
parents:
diff changeset
877 * @param systemStatus
jurzua
parents:
diff changeset
878 * @param type
jurzua
parents:
diff changeset
879 * @param ownValue
jurzua
parents:
diff changeset
880 * @return
jurzua
parents:
diff changeset
881 */
jurzua
parents:
diff changeset
882 private List<Entity> getEntities(Session session, Long id,
jurzua
parents:
diff changeset
883 String systemStatus, String type, String ownValue, boolean considerTimeModif) {
jurzua
parents:
diff changeset
884
jurzua
parents:
diff changeset
885 if (!(systemStatus.equals(Node.SYS_STATUS_PREVIOUS_VERSION) || systemStatus
jurzua
parents:
diff changeset
886 .equals(Node.SYS_STATUS_CURRENT_VERSION))) {
jurzua
parents:
diff changeset
887 throw new IllegalArgumentException("Invalid input systemStatus: "
jurzua
parents:
diff changeset
888 + systemStatus);
jurzua
parents:
diff changeset
889 }
jurzua
parents:
diff changeset
890
jurzua
parents:
diff changeset
891 if (StringUtils.isNotEmpty(type)
jurzua
parents:
diff changeset
892 && !(type.equals(Node.TYPE_ABOX) || type.equals(Node.TYPE_TBOX))) {
jurzua
parents:
diff changeset
893 throw new IllegalArgumentException("Invalid input type: " + type);
jurzua
parents:
diff changeset
894 }
jurzua
parents:
diff changeset
895
jurzua
parents:
diff changeset
896 List<Entity> entities;
jurzua
parents:
diff changeset
897
jurzua
parents:
diff changeset
898 String hqlEntities = "from Entity where systemStatus = :systemStatus";
jurzua
parents:
diff changeset
899
jurzua
parents:
diff changeset
900 if (StringUtils.isNotEmpty(type)) {
jurzua
parents:
diff changeset
901 hqlEntities += " AND type = :type";
jurzua
parents:
diff changeset
902 }
jurzua
parents:
diff changeset
903
jurzua
parents:
diff changeset
904 if (id != null) {
jurzua
parents:
diff changeset
905 hqlEntities += " AND id = :id";
jurzua
parents:
diff changeset
906 }
jurzua
parents:
diff changeset
907
jurzua
parents:
diff changeset
908 if (StringUtils.isNotEmpty(ownValue)) {
jurzua
parents:
diff changeset
909 hqlEntities += " AND ownValue = :ownValue";
jurzua
parents:
diff changeset
910 }
jurzua
parents:
diff changeset
911
jurzua
parents:
diff changeset
912 Query queryEntities = session.createQuery(hqlEntities);
jurzua
parents:
diff changeset
913 queryEntities.setString("systemStatus", systemStatus);
jurzua
parents:
diff changeset
914
jurzua
parents:
diff changeset
915 if (StringUtils.isNotEmpty(type)) {
jurzua
parents:
diff changeset
916 queryEntities.setString("type", type);
jurzua
parents:
diff changeset
917 }
jurzua
parents:
diff changeset
918
jurzua
parents:
diff changeset
919 if (StringUtils.isNotEmpty(ownValue)) {
jurzua
parents:
diff changeset
920 queryEntities.setString("ownValue", ownValue);
jurzua
parents:
diff changeset
921 }
jurzua
parents:
diff changeset
922
jurzua
parents:
diff changeset
923 if (id != null) {
jurzua
parents:
diff changeset
924 queryEntities.setLong("id", id);
jurzua
parents:
diff changeset
925 }
jurzua
parents:
diff changeset
926 entities = queryEntities.list();
jurzua
parents:
diff changeset
927
jurzua
parents:
diff changeset
928 for (Entity entity : entities) {
jurzua
parents:
diff changeset
929 entity.setLightweight(true);
jurzua
parents:
diff changeset
930 entity = this.getEntityContent(session, entity, considerTimeModif);
jurzua
parents:
diff changeset
931 }
jurzua
parents:
diff changeset
932
jurzua
parents:
diff changeset
933 return entities;
jurzua
parents:
diff changeset
934 }
jurzua
parents:
diff changeset
935
jurzua
parents:
diff changeset
936 /**
jurzua
parents:
diff changeset
937 * <p>
33
e52f593f9e0d new transaction logger "openmind.transactionlog" logging entity save actions and their data.
casties
parents: 27
diff changeset
938 * Returns entities with their corresponding content.
1
jurzua
parents:
diff changeset
939 * </p>
jurzua
parents:
diff changeset
940 *
jurzua
parents:
diff changeset
941 * @param id
jurzua
parents:
diff changeset
942 * @param systemStatus
jurzua
parents:
diff changeset
943 * @param type
jurzua
parents:
diff changeset
944 * @param ownValue
jurzua
parents:
diff changeset
945 * @return
jurzua
parents:
diff changeset
946 */
jurzua
parents:
diff changeset
947 public List<Entity> getEntities(Long id, String systemStatus, String type,
jurzua
parents:
diff changeset
948 String ownValue) {
jurzua
parents:
diff changeset
949 logger.debug("GET ENTITIES Entities [id=" + id + ", type=" + type
jurzua
parents:
diff changeset
950 + ", ownValue=" + ownValue + "]");
jurzua
parents:
diff changeset
951
jurzua
parents:
diff changeset
952 if (!(systemStatus.equals(Node.SYS_STATUS_PREVIOUS_VERSION) || systemStatus
jurzua
parents:
diff changeset
953 .equals(Node.SYS_STATUS_CURRENT_VERSION))) {
jurzua
parents:
diff changeset
954 throw new IllegalArgumentException("Invalid input systemStatus: "
jurzua
parents:
diff changeset
955 + systemStatus);
jurzua
parents:
diff changeset
956 }
jurzua
parents:
diff changeset
957
jurzua
parents:
diff changeset
958 if (StringUtils.isNotEmpty(type)
jurzua
parents:
diff changeset
959 && !(type.equals(Node.TYPE_ABOX) || type.equals(Node.TYPE_TBOX))) {
jurzua
parents:
diff changeset
960 throw new IllegalArgumentException("Invalid input type: " + type);
jurzua
parents:
diff changeset
961 }
jurzua
parents:
diff changeset
962
jurzua
parents:
diff changeset
963 List<Entity> entities = null;
jurzua
parents:
diff changeset
964 Session session = null;
jurzua
parents:
diff changeset
965 try {
jurzua
parents:
diff changeset
966 long start = System.currentTimeMillis();
jurzua
parents:
diff changeset
967 session = HibernateUtil.getSessionFactory().getCurrentSession();
jurzua
parents:
diff changeset
968 session.getTransaction().begin();
jurzua
parents:
diff changeset
969
jurzua
parents:
diff changeset
970 entities = this.getEntities(session, id, systemStatus, type,
jurzua
parents:
diff changeset
971 ownValue, true);
jurzua
parents:
diff changeset
972
jurzua
parents:
diff changeset
973 long dif = System.currentTimeMillis() - start;
jurzua
parents:
diff changeset
974
jurzua
parents:
diff changeset
975 String s = "Found=\n";
jurzua
parents:
diff changeset
976 for (Entity e : entities) {
jurzua
parents:
diff changeset
977 s += e.toString() + "\n";
jurzua
parents:
diff changeset
978 }
jurzua
parents:
diff changeset
979 s += "time used= " + dif + "[ms]\n\n";
jurzua
parents:
diff changeset
980 logger.debug(s);
jurzua
parents:
diff changeset
981
jurzua
parents:
diff changeset
982 // session.getTransaction().commit();
jurzua
parents:
diff changeset
983 } catch (Exception e) {
jurzua
parents:
diff changeset
984 logger.error(e.getMessage(), e);
jurzua
parents:
diff changeset
985 // e.printStackTrace();
jurzua
parents:
diff changeset
986 } finally {
jurzua
parents:
diff changeset
987 session.getTransaction().commit();
jurzua
parents:
diff changeset
988 }
jurzua
parents:
diff changeset
989 return entities;
jurzua
parents:
diff changeset
990 }
jurzua
parents:
diff changeset
991
jurzua
parents:
diff changeset
992 private String whereUpdate(String where) {
jurzua
parents:
diff changeset
993 if (StringUtils.isEmpty(where))
jurzua
parents:
diff changeset
994 where = " where ";
jurzua
parents:
diff changeset
995 else
jurzua
parents:
diff changeset
996 where += " AND ";
jurzua
parents:
diff changeset
997 return where;
jurzua
parents:
diff changeset
998 }
jurzua
parents:
diff changeset
999
jurzua
parents:
diff changeset
1000 public List<Node> getNodes(Session session, Long id, String systemStatus,
jurzua
parents:
diff changeset
1001 Long sourceId, Long srcModif, Long targetId, Long tarModif) {
jurzua
parents:
diff changeset
1002 List<Node> nodes = null;
jurzua
parents:
diff changeset
1003
jurzua
parents:
diff changeset
1004 String from = "from Node ";
jurzua
parents:
diff changeset
1005 String where = "";
jurzua
parents:
diff changeset
1006
jurzua
parents:
diff changeset
1007 if (id != null) {
jurzua
parents:
diff changeset
1008 where = this.whereUpdate(where);
jurzua
parents:
diff changeset
1009 where += " id = :id ";
jurzua
parents:
diff changeset
1010
jurzua
parents:
diff changeset
1011 }
jurzua
parents:
diff changeset
1012 if (StringUtils.isNotEmpty(systemStatus)) {
jurzua
parents:
diff changeset
1013 where = this.whereUpdate(where);
jurzua
parents:
diff changeset
1014 where += " systemStatus = :systemStatus ";
jurzua
parents:
diff changeset
1015 }
jurzua
parents:
diff changeset
1016
jurzua
parents:
diff changeset
1017 // source's attributes
jurzua
parents:
diff changeset
1018 if (sourceId != null) {
jurzua
parents:
diff changeset
1019 where = this.whereUpdate(where);
jurzua
parents:
diff changeset
1020 where += " sourceId = :sourceId ";
jurzua
parents:
diff changeset
1021 }
jurzua
parents:
diff changeset
1022 if (srcModif != null) {
jurzua
parents:
diff changeset
1023 where = this.whereUpdate(where);
jurzua
parents:
diff changeset
1024 where += " sourceModif = :sourceModif ";
jurzua
parents:
diff changeset
1025 }
jurzua
parents:
diff changeset
1026
jurzua
parents:
diff changeset
1027 if (targetId != null) {
jurzua
parents:
diff changeset
1028 where = this.whereUpdate(where);
jurzua
parents:
diff changeset
1029 where += " targetId = :targetId ";
jurzua
parents:
diff changeset
1030 }
jurzua
parents:
diff changeset
1031 if (tarModif != null) {
jurzua
parents:
diff changeset
1032 where = this.whereUpdate(where);
jurzua
parents:
diff changeset
1033 where += " targetModif = :targetModif ";
jurzua
parents:
diff changeset
1034 }
jurzua
parents:
diff changeset
1035
jurzua
parents:
diff changeset
1036 String hql = from + where;
jurzua
parents:
diff changeset
1037 Query query = session.createQuery(hql);
jurzua
parents:
diff changeset
1038
jurzua
parents:
diff changeset
1039 if (id != null)
jurzua
parents:
diff changeset
1040 query.setLong("id", id);
jurzua
parents:
diff changeset
1041 if (StringUtils.isNotEmpty(systemStatus))
jurzua
parents:
diff changeset
1042 query.setString("systemStatus", systemStatus);
jurzua
parents:
diff changeset
1043
jurzua
parents:
diff changeset
1044 if (sourceId != null)
jurzua
parents:
diff changeset
1045 query.setLong("sourceId", sourceId);
jurzua
parents:
diff changeset
1046 if (srcModif != null)
jurzua
parents:
diff changeset
1047 query.setLong("sourceModif", srcModif);
jurzua
parents:
diff changeset
1048
jurzua
parents:
diff changeset
1049 if (targetId != null)
jurzua
parents:
diff changeset
1050 query.setLong("targetId", targetId);
jurzua
parents:
diff changeset
1051 if (tarModif != null)
jurzua
parents:
diff changeset
1052 query.setLong("targetModif", tarModif);
jurzua
parents:
diff changeset
1053
jurzua
parents:
diff changeset
1054 nodes = query.list();
jurzua
parents:
diff changeset
1055
jurzua
parents:
diff changeset
1056 return nodes;
jurzua
parents:
diff changeset
1057 }
jurzua
parents:
diff changeset
1058
jurzua
parents:
diff changeset
1059 private Entity getEntityContent(Session session, Entity entity, boolean considerTimeModif) {
jurzua
parents:
diff changeset
1060 if (entity != null && entity.isLightweight()) {
jurzua
parents:
diff changeset
1061 entity.setLightweight(false);
jurzua
parents:
diff changeset
1062 entity.setAttributes(new ArrayList<Attribute>());
jurzua
parents:
diff changeset
1063 entity.setSourceRelations(new ArrayList<Relation>());
jurzua
parents:
diff changeset
1064 entity.setTargetRelations(new ArrayList<Relation>());
jurzua
parents:
diff changeset
1065
33
e52f593f9e0d new transaction logger "openmind.transactionlog" logging entity save actions and their data.
casties
parents: 27
diff changeset
1066 /*
e52f593f9e0d new transaction logger "openmind.transactionlog" logging entity save actions and their data.
casties
parents: 27
diff changeset
1067 * Danger: getNodes finds all attributes in the db and tries to attach them to
e52f593f9e0d new transaction logger "openmind.transactionlog" logging entity save actions and their data.
casties
parents: 27
diff changeset
1068 * this entity if id=null!
e52f593f9e0d new transaction logger "openmind.transactionlog" logging entity save actions and their data.
casties
parents: 27
diff changeset
1069 */
26
5e24413d355b Fixed bug that deleted all attributes in the system if a relation had id=null :-(
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents: 25
diff changeset
1070 if (entity.getId() == null) {
27
8ea716da439f better error message :-)
casties
parents: 26
diff changeset
1071 logger.error("Entity with id=null! Abort loading attributes.");
26
5e24413d355b Fixed bug that deleted all attributes in the system if a relation had id=null :-(
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents: 25
diff changeset
1072 return entity;
5e24413d355b Fixed bug that deleted all attributes in the system if a relation had id=null :-(
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents: 25
diff changeset
1073 }
5e24413d355b Fixed bug that deleted all attributes in the system if a relation had id=null :-(
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents: 25
diff changeset
1074
1
jurzua
parents:
diff changeset
1075 // getting Attributes and SourceRelations
26
5e24413d355b Fixed bug that deleted all attributes in the system if a relation had id=null :-(
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents: 25
diff changeset
1076 List<Node> nodes = null;
1
jurzua
parents:
diff changeset
1077 if(considerTimeModif){
jurzua
parents:
diff changeset
1078 nodes = this.getNodes(session, null,
jurzua
parents:
diff changeset
1079 entity.getSystemStatus(), entity.getId(),
jurzua
parents:
diff changeset
1080 entity.getModificationTime(), null, null);
jurzua
parents:
diff changeset
1081 }else{
jurzua
parents:
diff changeset
1082 nodes = this.getNodes(session, null,
jurzua
parents:
diff changeset
1083 entity.getSystemStatus(), entity.getId(),
jurzua
parents:
diff changeset
1084 null, null, null);
jurzua
parents:
diff changeset
1085 }
jurzua
parents:
diff changeset
1086
jurzua
parents:
diff changeset
1087
jurzua
parents:
diff changeset
1088 for (Node node : nodes) {
jurzua
parents:
diff changeset
1089 if (node instanceof Attribute) {
jurzua
parents:
diff changeset
1090 entity.addAttribute((Attribute) node);
jurzua
parents:
diff changeset
1091 } else if (node instanceof Relation) {
jurzua
parents:
diff changeset
1092 Relation rel = (Relation) node;
jurzua
parents:
diff changeset
1093 // new attr for relations
33
e52f593f9e0d new transaction logger "openmind.transactionlog" logging entity save actions and their data.
casties
parents: 27
diff changeset
1094 /*
e52f593f9e0d new transaction logger "openmind.transactionlog" logging entity save actions and their data.
casties
parents: 27
diff changeset
1095 * Danger: getNodes finds all attributes in the db and tries to attach them to
e52f593f9e0d new transaction logger "openmind.transactionlog" logging entity save actions and their data.
casties
parents: 27
diff changeset
1096 * this relation if id=null!
e52f593f9e0d new transaction logger "openmind.transactionlog" logging entity save actions and their data.
casties
parents: 27
diff changeset
1097 */
26
5e24413d355b Fixed bug that deleted all attributes in the system if a relation had id=null :-(
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents: 25
diff changeset
1098 if (rel.getId() == null) {
5e24413d355b Fixed bug that deleted all attributes in the system if a relation had id=null :-(
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents: 25
diff changeset
1099 logger.error("Relation with id=null! Abort loading attributes.");
5e24413d355b Fixed bug that deleted all attributes in the system if a relation had id=null :-(
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents: 25
diff changeset
1100 continue;
5e24413d355b Fixed bug that deleted all attributes in the system if a relation had id=null :-(
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents: 25
diff changeset
1101 }
1
jurzua
parents:
diff changeset
1102 List<Node> attrs = this.getNodes(session, null,
jurzua
parents:
diff changeset
1103 rel.getSystemStatus(), rel.getId(),
jurzua
parents:
diff changeset
1104 rel.getModificationTime(), null, null);
jurzua
parents:
diff changeset
1105 for (Node attNode : attrs) {
jurzua
parents:
diff changeset
1106 if (attNode instanceof Attribute) {
jurzua
parents:
diff changeset
1107 rel.addAttribute((Attribute) attNode);
jurzua
parents:
diff changeset
1108 }
jurzua
parents:
diff changeset
1109 }
jurzua
parents:
diff changeset
1110 if(considerTimeModif){
jurzua
parents:
diff changeset
1111 entity.addSourceRelation(rel);
jurzua
parents:
diff changeset
1112 }else{
jurzua
parents:
diff changeset
1113 entity.getSourceRelations().add(rel);
jurzua
parents:
diff changeset
1114 }
jurzua
parents:
diff changeset
1115 } else if (node instanceof View) {
jurzua
parents:
diff changeset
1116 entity.getViews().add((View) node);
jurzua
parents:
diff changeset
1117 } else {
33
e52f593f9e0d new transaction logger "openmind.transactionlog" logging entity save actions and their data.
casties
parents: 27
diff changeset
1118 throw new IllegalArgumentException("Invalid node found: " + node);
1
jurzua
parents:
diff changeset
1119 }
jurzua
parents:
diff changeset
1120 }
jurzua
parents:
diff changeset
1121
jurzua
parents:
diff changeset
1122 // getting TargetRelations
jurzua
parents:
diff changeset
1123 List<Node> tarRels = null;
jurzua
parents:
diff changeset
1124
jurzua
parents:
diff changeset
1125 if(considerTimeModif){
jurzua
parents:
diff changeset
1126 tarRels = this.getNodes(session, null,
jurzua
parents:
diff changeset
1127 entity.getSystemStatus(), null, null, entity.getId(),
jurzua
parents:
diff changeset
1128 entity.getModificationTime());
jurzua
parents:
diff changeset
1129 }else{
jurzua
parents:
diff changeset
1130 tarRels = this.getNodes(session, null,
jurzua
parents:
diff changeset
1131 entity.getSystemStatus(), null, null, entity.getId(),
jurzua
parents:
diff changeset
1132 null);
jurzua
parents:
diff changeset
1133 }
jurzua
parents:
diff changeset
1134
jurzua
parents:
diff changeset
1135 for (Node node : tarRels) {
jurzua
parents:
diff changeset
1136 if (node instanceof Relation) {
jurzua
parents:
diff changeset
1137 Relation rel = (Relation) node;
jurzua
parents:
diff changeset
1138 // new attr for relations
33
e52f593f9e0d new transaction logger "openmind.transactionlog" logging entity save actions and their data.
casties
parents: 27
diff changeset
1139 /*
e52f593f9e0d new transaction logger "openmind.transactionlog" logging entity save actions and their data.
casties
parents: 27
diff changeset
1140 * Danger: getNodes finds all attributes in the db and tries to attach them to
e52f593f9e0d new transaction logger "openmind.transactionlog" logging entity save actions and their data.
casties
parents: 27
diff changeset
1141 * this relation if id=null!
e52f593f9e0d new transaction logger "openmind.transactionlog" logging entity save actions and their data.
casties
parents: 27
diff changeset
1142 */
26
5e24413d355b Fixed bug that deleted all attributes in the system if a relation had id=null :-(
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents: 25
diff changeset
1143 if (rel.getId() == null) {
5e24413d355b Fixed bug that deleted all attributes in the system if a relation had id=null :-(
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents: 25
diff changeset
1144 logger.error("Relation with id=null! Abort loading attributes.");
5e24413d355b Fixed bug that deleted all attributes in the system if a relation had id=null :-(
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents: 25
diff changeset
1145 continue;
5e24413d355b Fixed bug that deleted all attributes in the system if a relation had id=null :-(
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents: 25
diff changeset
1146 }
1
jurzua
parents:
diff changeset
1147 List<Node> attrs = this.getNodes(session, null,
jurzua
parents:
diff changeset
1148 rel.getSystemStatus(), rel.getId(),
jurzua
parents:
diff changeset
1149 rel.getModificationTime(), null, null);
jurzua
parents:
diff changeset
1150 for (Node attNode : attrs) {
jurzua
parents:
diff changeset
1151 if (attNode instanceof Attribute) {
jurzua
parents:
diff changeset
1152 rel.addAttribute((Attribute) attNode);
jurzua
parents:
diff changeset
1153 }
jurzua
parents:
diff changeset
1154 }
jurzua
parents:
diff changeset
1155 if(considerTimeModif){
jurzua
parents:
diff changeset
1156 entity.addTargetRelation(rel);
jurzua
parents:
diff changeset
1157 }else{
jurzua
parents:
diff changeset
1158 entity.getTargetRelations().add(rel);
jurzua
parents:
diff changeset
1159 }
jurzua
parents:
diff changeset
1160 } else {
jurzua
parents:
diff changeset
1161 throw new IllegalArgumentException("Invalid node found: "
jurzua
parents:
diff changeset
1162 + node);
jurzua
parents:
diff changeset
1163 }
jurzua
parents:
diff changeset
1164 }
jurzua
parents:
diff changeset
1165 }
jurzua
parents:
diff changeset
1166 return entity;
jurzua
parents:
diff changeset
1167 }
jurzua
parents:
diff changeset
1168
jurzua
parents:
diff changeset
1169 public Entity getEntityContent(Entity entity) {
jurzua
parents:
diff changeset
1170 if (entity != null && entity.isLightweight()) {
jurzua
parents:
diff changeset
1171 try {
jurzua
parents:
diff changeset
1172 logger.debug("GET ENTITY CONTENT [objClass="
jurzua
parents:
diff changeset
1173 + entity.getObjectClass() + ", id=" + entity.getId()
jurzua
parents:
diff changeset
1174 + ", ownValue=" + entity.getOwnValue() + "]");
jurzua
parents:
diff changeset
1175 long start = System.currentTimeMillis();
jurzua
parents:
diff changeset
1176 Session session = HibernateUtil.getSessionFactory()
jurzua
parents:
diff changeset
1177 .getCurrentSession();
jurzua
parents:
diff changeset
1178 session.getTransaction().begin();
jurzua
parents:
diff changeset
1179
jurzua
parents:
diff changeset
1180 entity = this.getEntityContent(session, entity, true);
jurzua
parents:
diff changeset
1181 long diff = System.currentTimeMillis() - start;
jurzua
parents:
diff changeset
1182 logger.debug("Time to get content=" + diff + "(s)");
jurzua
parents:
diff changeset
1183 session.getTransaction().commit();
jurzua
parents:
diff changeset
1184 } catch (Exception e) {
jurzua
parents:
diff changeset
1185 logger.error(e.getMessage(), e);
jurzua
parents:
diff changeset
1186 // e.printStackTrace();
jurzua
parents:
diff changeset
1187 }
jurzua
parents:
diff changeset
1188 }
jurzua
parents:
diff changeset
1189 return entity;
jurzua
parents:
diff changeset
1190 }
jurzua
parents:
diff changeset
1191
jurzua
parents:
diff changeset
1192 public List<String> getObjecClassSuggestion(String objectClass,
jurzua
parents:
diff changeset
1193 Class nodeClass, int maxResults) {
jurzua
parents:
diff changeset
1194 objectClass += "%";
jurzua
parents:
diff changeset
1195 try {
jurzua
parents:
diff changeset
1196
jurzua
parents:
diff changeset
1197 List<String> suggestions = new ArrayList<String>();
jurzua
parents:
diff changeset
1198 Session session = HibernateUtil.getSessionFactory()
jurzua
parents:
diff changeset
1199 .getCurrentSession();
jurzua
parents:
diff changeset
1200 session.getTransaction().begin();
jurzua
parents:
diff changeset
1201 String hql = "from ";
jurzua
parents:
diff changeset
1202 if (nodeClass.equals(Entity.class)) {
jurzua
parents:
diff changeset
1203 hql += "Entity ";
jurzua
parents:
diff changeset
1204 }
jurzua
parents:
diff changeset
1205 if (nodeClass.equals(Relation.class)) {
jurzua
parents:
diff changeset
1206 hql += "Relation ";
jurzua
parents:
diff changeset
1207 }
jurzua
parents:
diff changeset
1208 if (nodeClass.equals(Attribute.class)) {
jurzua
parents:
diff changeset
1209 hql += "Attribute ";
jurzua
parents:
diff changeset
1210 }
jurzua
parents:
diff changeset
1211 if (nodeClass.equals(Node.class)) {
jurzua
parents:
diff changeset
1212 hql += "Node ";
jurzua
parents:
diff changeset
1213 }
jurzua
parents:
diff changeset
1214 if (nodeClass.equals(View.class)) {
jurzua
parents:
diff changeset
1215 hql += "View ";
jurzua
parents:
diff changeset
1216 }
jurzua
parents:
diff changeset
1217 hql += " where objectClass like :objectClass "
jurzua
parents:
diff changeset
1218 + "group by objectClass";
jurzua
parents:
diff changeset
1219
jurzua
parents:
diff changeset
1220 Query query = session.createQuery(hql);
jurzua
parents:
diff changeset
1221 query.setString("objectClass", objectClass);
jurzua
parents:
diff changeset
1222 query.setMaxResults(maxResults);
jurzua
parents:
diff changeset
1223 List<Node> list = query.list();
jurzua
parents:
diff changeset
1224 for (Node node : list) {
jurzua
parents:
diff changeset
1225 suggestions.add(node.getObjectClass());
jurzua
parents:
diff changeset
1226 }
jurzua
parents:
diff changeset
1227 return suggestions;
jurzua
parents:
diff changeset
1228
jurzua
parents:
diff changeset
1229 } catch (Exception e) {
jurzua
parents:
diff changeset
1230 logger.error(e.getMessage(), e);
jurzua
parents:
diff changeset
1231 // e.printStackTrace();
jurzua
parents:
diff changeset
1232 }
jurzua
parents:
diff changeset
1233 return null;
jurzua
parents:
diff changeset
1234 }
jurzua
parents:
diff changeset
1235
jurzua
parents:
diff changeset
1236 public List<String> getOwnValueSuggestion(String ownValue, Class nodeClass,
jurzua
parents:
diff changeset
1237 int maxResults) {
jurzua
parents:
diff changeset
1238 ownValue += "%";
jurzua
parents:
diff changeset
1239 try {
jurzua
parents:
diff changeset
1240
jurzua
parents:
diff changeset
1241 List<String> suggestions = new ArrayList<String>();
jurzua
parents:
diff changeset
1242 Session session = HibernateUtil.getSessionFactory()
jurzua
parents:
diff changeset
1243 .getCurrentSession();
jurzua
parents:
diff changeset
1244 session.getTransaction().begin();
jurzua
parents:
diff changeset
1245 String hql = "from ";
jurzua
parents:
diff changeset
1246 if (nodeClass.equals(Entity.class)) {
jurzua
parents:
diff changeset
1247 hql += "Entity ";
jurzua
parents:
diff changeset
1248 }
jurzua
parents:
diff changeset
1249 if (nodeClass.equals(Relation.class)) {
jurzua
parents:
diff changeset
1250 hql += "Relation ";
jurzua
parents:
diff changeset
1251 }
jurzua
parents:
diff changeset
1252 if (nodeClass.equals(Attribute.class)) {
jurzua
parents:
diff changeset
1253 hql += "Attribute ";
jurzua
parents:
diff changeset
1254 }
jurzua
parents:
diff changeset
1255 if (nodeClass.equals(Node.class)) {
jurzua
parents:
diff changeset
1256 hql += "Node ";
jurzua
parents:
diff changeset
1257 }
jurzua
parents:
diff changeset
1258 if (nodeClass.equals(View.class)) {
jurzua
parents:
diff changeset
1259 hql += "View ";
jurzua
parents:
diff changeset
1260 }
jurzua
parents:
diff changeset
1261 hql += " where ownValue like :ownValue " + "group by ownValue";
jurzua
parents:
diff changeset
1262
jurzua
parents:
diff changeset
1263 Query query = session.createQuery(hql);
jurzua
parents:
diff changeset
1264 query.setString("ownValue", ownValue);
jurzua
parents:
diff changeset
1265 query.setMaxResults(maxResults);
jurzua
parents:
diff changeset
1266 List<Node> list = query.list();
jurzua
parents:
diff changeset
1267 for (Node node : list) {
jurzua
parents:
diff changeset
1268 suggestions.add(node.getOwnValue());
jurzua
parents:
diff changeset
1269 }
jurzua
parents:
diff changeset
1270 return suggestions;
jurzua
parents:
diff changeset
1271
jurzua
parents:
diff changeset
1272 } catch (Exception e) {
jurzua
parents:
diff changeset
1273 logger.error(e.getMessage(), e);
jurzua
parents:
diff changeset
1274 // e.printStackTrace();
jurzua
parents:
diff changeset
1275 }
jurzua
parents:
diff changeset
1276 return null;
jurzua
parents:
diff changeset
1277 }
jurzua
parents:
diff changeset
1278
jurzua
parents:
diff changeset
1279 public Entity loadEntitiesForTargetRelation(Entity entity) {
jurzua
parents:
diff changeset
1280 try {
jurzua
parents:
diff changeset
1281 // where parent_id = :parent_id AND type = :type
jurzua
parents:
diff changeset
1282 Session session = HibernateUtil.getSessionFactory()
jurzua
parents:
diff changeset
1283 .getCurrentSession();
jurzua
parents:
diff changeset
1284 session.getTransaction().begin();
jurzua
parents:
diff changeset
1285
jurzua
parents:
diff changeset
1286 for (Relation rel : entity.getTargetRelations()) {
jurzua
parents:
diff changeset
1287 List<Entity> entities = this.getEntities(session,
jurzua
parents:
diff changeset
1288 rel.getSourceId(), Node.SYS_STATUS_CURRENT_VERSION,
jurzua
parents:
diff changeset
1289 null, null, true);
jurzua
parents:
diff changeset
1290 if (entities.size() > 0) {
jurzua
parents:
diff changeset
1291 Entity source = entities.get(0);
jurzua
parents:
diff changeset
1292 rel.setSource(source);
jurzua
parents:
diff changeset
1293 }
jurzua
parents:
diff changeset
1294 }
jurzua
parents:
diff changeset
1295
jurzua
parents:
diff changeset
1296 session.getTransaction().commit();
jurzua
parents:
diff changeset
1297 return entity;
jurzua
parents:
diff changeset
1298 } catch (Exception e) {
jurzua
parents:
diff changeset
1299 logger.error(e.getMessage(), e);
jurzua
parents:
diff changeset
1300 // e.printStackTrace();
jurzua
parents:
diff changeset
1301 }
jurzua
parents:
diff changeset
1302 return entity;
jurzua
parents:
diff changeset
1303 }
jurzua
parents:
diff changeset
1304
jurzua
parents:
diff changeset
1305 protected List<Entity> getLightweightEntities(Session session,
jurzua
parents:
diff changeset
1306 String systemStatus, Long id, String type, String objectClass,
jurzua
parents:
diff changeset
1307 String ownValue, boolean ownValueSubString, int maxResult) {
jurzua
parents:
diff changeset
1308
jurzua
parents:
diff changeset
1309 String hqlEntities = "from Entity where ";
jurzua
parents:
diff changeset
1310 if (StringUtils.isNotEmpty(ownValue)) {
jurzua
parents:
diff changeset
1311 if (ownValueSubString)
jurzua
parents:
diff changeset
1312 hqlEntities += "ownValue like :ownValue AND ";
jurzua
parents:
diff changeset
1313 else
jurzua
parents:
diff changeset
1314 hqlEntities += "ownValue = :ownValue AND ";
jurzua
parents:
diff changeset
1315 }
jurzua
parents:
diff changeset
1316 if (id != null) {
jurzua
parents:
diff changeset
1317 hqlEntities += "id = :id AND ";
jurzua
parents:
diff changeset
1318 }
jurzua
parents:
diff changeset
1319 if (StringUtils.isNotEmpty(objectClass)) {
jurzua
parents:
diff changeset
1320 hqlEntities += "objectClass = :objectClass AND ";
jurzua
parents:
diff changeset
1321 }
jurzua
parents:
diff changeset
1322 if (StringUtils.isNotEmpty(type)) {
jurzua
parents:
diff changeset
1323 hqlEntities += "type = :type AND ";
jurzua
parents:
diff changeset
1324 }
jurzua
parents:
diff changeset
1325
jurzua
parents:
diff changeset
1326 hqlEntities += "systemStatus = :systemStatus ";
jurzua
parents:
diff changeset
1327
jurzua
parents:
diff changeset
1328 // it will be now sorted by openmind
jurzua
parents:
diff changeset
1329 // + "order by ownValue";
jurzua
parents:
diff changeset
1330
jurzua
parents:
diff changeset
1331 Query queryEntities = session.createQuery(hqlEntities);
jurzua
parents:
diff changeset
1332 queryEntities.setString("systemStatus", systemStatus);
jurzua
parents:
diff changeset
1333 if (StringUtils.isNotEmpty(ownValue)) {
jurzua
parents:
diff changeset
1334 if (ownValueSubString) {
jurzua
parents:
diff changeset
1335 queryEntities.setString("ownValue", "%" + ownValue + "%");
jurzua
parents:
diff changeset
1336 logger.info("ownValue=%" + ownValue + "%");
jurzua
parents:
diff changeset
1337 } else {
jurzua
parents:
diff changeset
1338 queryEntities.setString("ownValue", ownValue);
jurzua
parents:
diff changeset
1339 logger.info("ownValue=" + ownValue);
jurzua
parents:
diff changeset
1340 }
jurzua
parents:
diff changeset
1341 }
jurzua
parents:
diff changeset
1342 if (maxResult > 0) {
jurzua
parents:
diff changeset
1343 queryEntities.setMaxResults(maxResult);
jurzua
parents:
diff changeset
1344 }
jurzua
parents:
diff changeset
1345
jurzua
parents:
diff changeset
1346 if (StringUtils.isNotEmpty(type)) {
jurzua
parents:
diff changeset
1347 queryEntities.setString("type", type);
jurzua
parents:
diff changeset
1348 }
jurzua
parents:
diff changeset
1349 if (id != null) {
jurzua
parents:
diff changeset
1350 queryEntities.setLong("id", id);
jurzua
parents:
diff changeset
1351 }
jurzua
parents:
diff changeset
1352 if (StringUtils.isNotEmpty(objectClass)) {
jurzua
parents:
diff changeset
1353 queryEntities.setString("objectClass", objectClass);
jurzua
parents:
diff changeset
1354 }
jurzua
parents:
diff changeset
1355 List<Entity> entities = queryEntities.list();
jurzua
parents:
diff changeset
1356
jurzua
parents:
diff changeset
1357 for(Entity ent : entities){
jurzua
parents:
diff changeset
1358 ent.setLightweight(true);
jurzua
parents:
diff changeset
1359 }
jurzua
parents:
diff changeset
1360
jurzua
parents:
diff changeset
1361 return entities;
jurzua
parents:
diff changeset
1362 }
jurzua
parents:
diff changeset
1363
jurzua
parents:
diff changeset
1364 /**
jurzua
parents:
diff changeset
1365 * Own value is searched as substring
jurzua
parents:
diff changeset
1366 *
jurzua
parents:
diff changeset
1367 * @param systemStatus
jurzua
parents:
diff changeset
1368 * @param id
jurzua
parents:
diff changeset
1369 * @param type
jurzua
parents:
diff changeset
1370 * @param objectClass
jurzua
parents:
diff changeset
1371 * @param ownValue
jurzua
parents:
diff changeset
1372 * @param maxResult
jurzua
parents:
diff changeset
1373 * @return
jurzua
parents:
diff changeset
1374 */
jurzua
parents:
diff changeset
1375 public List<Entity> getLightweightEntities(String systemStatus, Long id,
jurzua
parents:
diff changeset
1376 String type, String objectClass, String ownValue,
jurzua
parents:
diff changeset
1377 boolean ownValueSubString, int maxResult) {
jurzua
parents:
diff changeset
1378 logger.debug("GET LW ENTITIES [type=" + type + " id=" + id
jurzua
parents:
diff changeset
1379 + ", objectClass=" + objectClass + ", ownValue=" + ownValue
jurzua
parents:
diff changeset
1380 + "]");
jurzua
parents:
diff changeset
1381
jurzua
parents:
diff changeset
1382 List<Entity> entities = new ArrayList<Entity>();
jurzua
parents:
diff changeset
1383 if (!(systemStatus.equals(Node.SYS_STATUS_PREVIOUS_VERSION) || systemStatus
jurzua
parents:
diff changeset
1384 .equals(Node.SYS_STATUS_CURRENT_VERSION))) {
jurzua
parents:
diff changeset
1385 throw new IllegalArgumentException("Invalid input systemStatus: "
jurzua
parents:
diff changeset
1386 + systemStatus);
jurzua
parents:
diff changeset
1387 }
jurzua
parents:
diff changeset
1388
jurzua
parents:
diff changeset
1389 if (StringUtils.isNotEmpty(type)
jurzua
parents:
diff changeset
1390 && !(type.equals(Node.TYPE_ABOX) || type.equals(Node.TYPE_TBOX))) {
jurzua
parents:
diff changeset
1391 throw new IllegalArgumentException("Invalid input type: " + type);
jurzua
parents:
diff changeset
1392 }
jurzua
parents:
diff changeset
1393
jurzua
parents:
diff changeset
1394 try {
jurzua
parents:
diff changeset
1395 // where parent_id = :parent_id AND type = :type
jurzua
parents:
diff changeset
1396 Session session = HibernateUtil.getSessionFactory()
jurzua
parents:
diff changeset
1397 .getCurrentSession();
jurzua
parents:
diff changeset
1398 session.getTransaction().begin();
jurzua
parents:
diff changeset
1399
jurzua
parents:
diff changeset
1400 entities = this.getLightweightEntities(session, systemStatus, id,
jurzua
parents:
diff changeset
1401 type, objectClass, ownValue, ownValueSubString, maxResult);
jurzua
parents:
diff changeset
1402
jurzua
parents:
diff changeset
1403
jurzua
parents:
diff changeset
1404 session.getTransaction().commit();
jurzua
parents:
diff changeset
1405 return entities;
jurzua
parents:
diff changeset
1406 } catch (Exception e) {
jurzua
parents:
diff changeset
1407 logger.error(e.getMessage(), e);
jurzua
parents:
diff changeset
1408 }
jurzua
parents:
diff changeset
1409 return entities;
jurzua
parents:
diff changeset
1410 }
jurzua
parents:
diff changeset
1411
jurzua
parents:
diff changeset
1412 private Sequence getIdSequence(Session session) {
jurzua
parents:
diff changeset
1413 Sequence sequence = null;
jurzua
parents:
diff changeset
1414 String hqlJoin = "from Sequence where name = :name";
jurzua
parents:
diff changeset
1415 Query query = session.createQuery(hqlJoin);
jurzua
parents:
diff changeset
1416 query.setString("name", NODE_SEQUENCE);
jurzua
parents:
diff changeset
1417 List<Sequence> sequences = query.list();
jurzua
parents:
diff changeset
1418 if (sequences.size() > 0)
jurzua
parents:
diff changeset
1419 sequence = sequences.get(0);
jurzua
parents:
diff changeset
1420 if (sequence == null) {
jurzua
parents:
diff changeset
1421 sequence = new Sequence(NODE_SEQUENCE, new Long(0));
jurzua
parents:
diff changeset
1422 }
jurzua
parents:
diff changeset
1423 return sequence;
jurzua
parents:
diff changeset
1424 }
jurzua
parents:
diff changeset
1425
jurzua
parents:
diff changeset
1426 protected Long generateId(Session session) {
jurzua
parents:
diff changeset
1427 Long id = null;
jurzua
parents:
diff changeset
1428 Sequence sequence = null;
jurzua
parents:
diff changeset
1429 String hqlJoin = "from Sequence where name = :name";
jurzua
parents:
diff changeset
1430 Query query = session.createQuery(hqlJoin);
jurzua
parents:
diff changeset
1431 query.setString("name", NODE_SEQUENCE);
jurzua
parents:
diff changeset
1432 List<Sequence> sequences = query.list();
jurzua
parents:
diff changeset
1433 if (sequences.size() > 0) {
jurzua
parents:
diff changeset
1434 sequence = sequences.get(0);
jurzua
parents:
diff changeset
1435 } else {
jurzua
parents:
diff changeset
1436 sequence = new Sequence(NODE_SEQUENCE, new Long(0));
jurzua
parents:
diff changeset
1437 }
jurzua
parents:
diff changeset
1438 id = sequence.generateId();
jurzua
parents:
diff changeset
1439 session.save(sequence);
jurzua
parents:
diff changeset
1440 return id;
jurzua
parents:
diff changeset
1441 }
jurzua
parents:
diff changeset
1442
jurzua
parents:
diff changeset
1443 public ConfigurationService getConfigurationService() {
jurzua
parents:
diff changeset
1444 return configurationService;
jurzua
parents:
diff changeset
1445 }
jurzua
parents:
diff changeset
1446
jurzua
parents:
diff changeset
1447 public void setConfigurationService(
jurzua
parents:
diff changeset
1448 ConfigurationService configurationService) {
jurzua
parents:
diff changeset
1449 this.configurationService = configurationService;
jurzua
parents:
diff changeset
1450 }
jurzua
parents:
diff changeset
1451
33
e52f593f9e0d new transaction logger "openmind.transactionlog" logging entity save actions and their data.
casties
parents: 27
diff changeset
1452 public boolean isImportMode() {
e52f593f9e0d new transaction logger "openmind.transactionlog" logging entity save actions and their data.
casties
parents: 27
diff changeset
1453 return importMode;
1
jurzua
parents:
diff changeset
1454 }
jurzua
parents:
diff changeset
1455
jurzua
parents:
diff changeset
1456 public void setImportModus(boolean importModus) {
33
e52f593f9e0d new transaction logger "openmind.transactionlog" logging entity save actions and their data.
casties
parents: 27
diff changeset
1457 this.importMode = importModus;
1
jurzua
parents:
diff changeset
1458 }
jurzua
parents:
diff changeset
1459
jurzua
parents:
diff changeset
1460 // #################################################################
jurzua
parents:
diff changeset
1461 // #################################################################
jurzua
parents:
diff changeset
1462 // #################################################################
jurzua
parents:
diff changeset
1463
jurzua
parents:
diff changeset
1464 public List<Relation> getDefRelations() {
jurzua
parents:
diff changeset
1465 List<Relation> list = new ArrayList<Relation>();
jurzua
parents:
diff changeset
1466 Session session = HibernateUtil.getSessionFactory().getCurrentSession();
jurzua
parents:
diff changeset
1467 try {
jurzua
parents:
diff changeset
1468 session.getTransaction().begin();
jurzua
parents:
diff changeset
1469
jurzua
parents:
diff changeset
1470 String hql = "from Relation where systemStatus = :systemStatus and type = :type";
jurzua
parents:
diff changeset
1471 Query query = session.createQuery(hql);
jurzua
parents:
diff changeset
1472
jurzua
parents:
diff changeset
1473 query.setString("systemStatus", Node.SYS_STATUS_CURRENT_VERSION);
jurzua
parents:
diff changeset
1474 query.setString("type", Node.TYPE_TBOX);
jurzua
parents:
diff changeset
1475
jurzua
parents:
diff changeset
1476 list = query.list();
jurzua
parents:
diff changeset
1477 /*
jurzua
parents:
diff changeset
1478 * for(Relation rel : list){ List<Node> attrs =
jurzua
parents:
diff changeset
1479 * this.getNodes(session, null, rel.getSystemStatus(), rel.getId(),
jurzua
parents:
diff changeset
1480 * rel.getModificationTime(), null, null); for(Node attNode :
jurzua
parents:
diff changeset
1481 * attrs){ if(attNode instanceof Attribute){
jurzua
parents:
diff changeset
1482 * rel.addAttribute((Attribute)attNode); } } }
jurzua
parents:
diff changeset
1483 */
jurzua
parents:
diff changeset
1484
jurzua
parents:
diff changeset
1485 } catch (Exception e) {
jurzua
parents:
diff changeset
1486 logger.error(e.getMessage(), e);
jurzua
parents:
diff changeset
1487 } finally {
jurzua
parents:
diff changeset
1488 session.getTransaction().commit();
jurzua
parents:
diff changeset
1489 }
jurzua
parents:
diff changeset
1490 return list;
jurzua
parents:
diff changeset
1491 }
jurzua
parents:
diff changeset
1492
jurzua
parents:
diff changeset
1493 public List<Attribute> getDefAttributes() {
jurzua
parents:
diff changeset
1494 List<Attribute> list = new ArrayList<Attribute>();
jurzua
parents:
diff changeset
1495 Session session = HibernateUtil.getSessionFactory().getCurrentSession();
jurzua
parents:
diff changeset
1496 try {
jurzua
parents:
diff changeset
1497 session.getTransaction().begin();
jurzua
parents:
diff changeset
1498
jurzua
parents:
diff changeset
1499 String hql = "from Attribute where systemStatus = :systemStatus and type = :type";
jurzua
parents:
diff changeset
1500 Query query = session.createQuery(hql);
jurzua
parents:
diff changeset
1501
jurzua
parents:
diff changeset
1502 query.setString("systemStatus", Node.SYS_STATUS_CURRENT_VERSION);
jurzua
parents:
diff changeset
1503 query.setString("type", Node.TYPE_TBOX);
jurzua
parents:
diff changeset
1504
jurzua
parents:
diff changeset
1505 list = query.list();
jurzua
parents:
diff changeset
1506
jurzua
parents:
diff changeset
1507 } catch (Exception e) {
jurzua
parents:
diff changeset
1508 logger.error(e.getMessage(), e);
jurzua
parents:
diff changeset
1509 } finally {
jurzua
parents:
diff changeset
1510 session.getTransaction().commit();
jurzua
parents:
diff changeset
1511 }
jurzua
parents:
diff changeset
1512 return list;
jurzua
parents:
diff changeset
1513 }
jurzua
parents:
diff changeset
1514
jurzua
parents:
diff changeset
1515 public List<Entity> getLWDefinitions() throws Exception {
jurzua
parents:
diff changeset
1516 List<Entity> list = new ArrayList<Entity>();
jurzua
parents:
diff changeset
1517 Session session = HibernateUtil.getSessionFactory().getCurrentSession();
jurzua
parents:
diff changeset
1518
jurzua
parents:
diff changeset
1519 session.getTransaction().begin();
jurzua
parents:
diff changeset
1520
jurzua
parents:
diff changeset
1521 String hql = "from Entity where systemStatus = :systemStatus and type = :type";
jurzua
parents:
diff changeset
1522 Query query = session.createQuery(hql);
jurzua
parents:
diff changeset
1523
jurzua
parents:
diff changeset
1524 query.setString("systemStatus", Node.SYS_STATUS_CURRENT_VERSION);
jurzua
parents:
diff changeset
1525 query.setString("type", Node.TYPE_TBOX);
jurzua
parents:
diff changeset
1526
jurzua
parents:
diff changeset
1527 list = query.list();
jurzua
parents:
diff changeset
1528 for (Entity def : list) {
jurzua
parents:
diff changeset
1529 def.setLightweight(true);
jurzua
parents:
diff changeset
1530 }
jurzua
parents:
diff changeset
1531 session.getTransaction().commit();
jurzua
parents:
diff changeset
1532
jurzua
parents:
diff changeset
1533 return list;
jurzua
parents:
diff changeset
1534 }
jurzua
parents:
diff changeset
1535
jurzua
parents:
diff changeset
1536 // #################################################################
jurzua
parents:
diff changeset
1537 // #################################################################
jurzua
parents:
diff changeset
1538 // #################################################################
jurzua
parents:
diff changeset
1539
jurzua
parents:
diff changeset
1540 public Long getEntityCount(String objectClass) {
jurzua
parents:
diff changeset
1541 Long count = null;
jurzua
parents:
diff changeset
1542 try {
jurzua
parents:
diff changeset
1543 Session session = HibernateUtil.getSessionFactory()
jurzua
parents:
diff changeset
1544 .getCurrentSession();
jurzua
parents:
diff changeset
1545 session.getTransaction().begin();
jurzua
parents:
diff changeset
1546
jurzua
parents:
diff changeset
1547 String hql = "select count(*) from Entity where ";
jurzua
parents:
diff changeset
1548
jurzua
parents:
diff changeset
1549 if (StringUtils.isNotEmpty(objectClass)) {
jurzua
parents:
diff changeset
1550 hql += "objectClass = :objectClass AND ";
jurzua
parents:
diff changeset
1551 } else {
jurzua
parents:
diff changeset
1552 hql += "objectClass != :objectClass AND ";
jurzua
parents:
diff changeset
1553 }
jurzua
parents:
diff changeset
1554 hql += "systemStatus = :systemStatus ";
jurzua
parents:
diff changeset
1555
jurzua
parents:
diff changeset
1556 Query query = session.createQuery(hql);
jurzua
parents:
diff changeset
1557 query.setString("systemStatus", Node.SYS_STATUS_CURRENT_VERSION);
jurzua
parents:
diff changeset
1558 if (StringUtils.isNotEmpty(objectClass)) {
jurzua
parents:
diff changeset
1559 query.setString("objectClass", objectClass);
jurzua
parents:
diff changeset
1560 } else {
jurzua
parents:
diff changeset
1561 query.setString("objectClass", Node.TYPE_TBOX);
jurzua
parents:
diff changeset
1562 }
jurzua
parents:
diff changeset
1563 count = (Long) query.uniqueResult();
jurzua
parents:
diff changeset
1564
jurzua
parents:
diff changeset
1565 session.getTransaction().commit();
jurzua
parents:
diff changeset
1566 } catch (Exception e) {
jurzua
parents:
diff changeset
1567 logger.error(e.getMessage(), e);
jurzua
parents:
diff changeset
1568 }
jurzua
parents:
diff changeset
1569 return count;
jurzua
parents:
diff changeset
1570 }
jurzua
parents:
diff changeset
1571
jurzua
parents:
diff changeset
1572 /**
jurzua
parents:
diff changeset
1573 *
jurzua
parents:
diff changeset
1574 * @param objectClass
jurzua
parents:
diff changeset
1575 * if it is null, it will be returned all entities (no
jurzua
parents:
diff changeset
1576 * definition). To get the definitions objectClass should be:
jurzua
parents:
diff changeset
1577 * Node.TYPE_TBOX
jurzua
parents:
diff changeset
1578 * @param startRecord
jurzua
parents:
diff changeset
1579 * @param endRecord
jurzua
parents:
diff changeset
1580 * @return
jurzua
parents:
diff changeset
1581 */
jurzua
parents:
diff changeset
1582 public List<Entity> getEntityPage(String objectClass,
jurzua
parents:
diff changeset
1583 final int startRecord, final int endRecord) {
jurzua
parents:
diff changeset
1584
jurzua
parents:
diff changeset
1585 List<Entity> entities = new ArrayList<Entity>();
jurzua
parents:
diff changeset
1586 try {
jurzua
parents:
diff changeset
1587 Session session = HibernateUtil.getSessionFactory()
jurzua
parents:
diff changeset
1588 .getCurrentSession();
jurzua
parents:
diff changeset
1589 session.getTransaction().begin();
jurzua
parents:
diff changeset
1590
jurzua
parents:
diff changeset
1591 String hql = "from Entity where ";
jurzua
parents:
diff changeset
1592
jurzua
parents:
diff changeset
1593 if (StringUtils.isNotEmpty(objectClass)) {
jurzua
parents:
diff changeset
1594 hql += "objectClass = :objectClass AND ";
jurzua
parents:
diff changeset
1595 } else {
jurzua
parents:
diff changeset
1596 hql += "objectClass != :objectClass AND ";
jurzua
parents:
diff changeset
1597 }
jurzua
parents:
diff changeset
1598
jurzua
parents:
diff changeset
1599 hql += "systemStatus = :systemStatus order by ownValue";
jurzua
parents:
diff changeset
1600
jurzua
parents:
diff changeset
1601 Query query = session.createQuery(hql);
jurzua
parents:
diff changeset
1602 query.setFirstResult(startRecord);
jurzua
parents:
diff changeset
1603 query.setMaxResults(endRecord);
jurzua
parents:
diff changeset
1604 query.setString("systemStatus", Node.SYS_STATUS_CURRENT_VERSION);
jurzua
parents:
diff changeset
1605 if (StringUtils.isNotEmpty(objectClass)) {
jurzua
parents:
diff changeset
1606 query.setString("objectClass", objectClass);
jurzua
parents:
diff changeset
1607 } else {
jurzua
parents:
diff changeset
1608 query.setString("objectClass", Node.TYPE_TBOX);
jurzua
parents:
diff changeset
1609 }
jurzua
parents:
diff changeset
1610 entities = query.list();
jurzua
parents:
diff changeset
1611
jurzua
parents:
diff changeset
1612 session.getTransaction().commit();
jurzua
parents:
diff changeset
1613 } catch (Exception e) {
jurzua
parents:
diff changeset
1614 logger.error(e.getMessage(), e);
jurzua
parents:
diff changeset
1615 // e.printStackTrace();
jurzua
parents:
diff changeset
1616 }
jurzua
parents:
diff changeset
1617 return entities;
jurzua
parents:
diff changeset
1618 }
jurzua
parents:
diff changeset
1619
jurzua
parents:
diff changeset
1620 public static void main(String[] args) {
jurzua
parents:
diff changeset
1621 /*
jurzua
parents:
diff changeset
1622 * ServiceRegistry sr = new ServiceRegistry(); Long count =
jurzua
parents:
diff changeset
1623 * sr.getPersistenceService().getEntityCount("CODEX");
jurzua
parents:
diff changeset
1624 * logger.info("count codex " + count);
jurzua
parents:
diff changeset
1625 *
jurzua
parents:
diff changeset
1626 * List<Entity> list = sr.getPersistenceService().getEntityPage("CODEX",
jurzua
parents:
diff changeset
1627 * count.intValue() - 100, count.intValue() - 50); for(Entity e : list){
jurzua
parents:
diff changeset
1628 * logger.info(e.toString()); }
jurzua
parents:
diff changeset
1629 */
jurzua
parents:
diff changeset
1630 }
jurzua
parents:
diff changeset
1631
jurzua
parents:
diff changeset
1632 }