001// -------------------------------------------------------------------------------- 002// Copyright 2002-2024 Echo Three, LLC 003// 004// Licensed under the Apache License, Version 2.0 (the "License"); 005// you may not use this file except in compliance with the License. 006// You may obtain a copy of the License at 007// 008// http://www.apache.org/licenses/LICENSE-2.0 009// 010// Unless required by applicable law or agreed to in writing, software 011// distributed under the License is distributed on an "AS IS" BASIS, 012// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 013// See the License for the specific language governing permissions and 014// limitations under the License. 015// -------------------------------------------------------------------------------- 016// Generated File -- DO NOT EDIT BY HAND 017// -------------------------------------------------------------------------------- 018 019/** 020 * TrainingClassTranslationFactory.java 021 */ 022 023package com.echothree.model.data.training.server.factory; 024 025import com.echothree.model.data.training.common.pk.TrainingClassPK; 026import com.echothree.model.data.party.common.pk.LanguagePK; 027import com.echothree.model.data.core.common.pk.MimeTypePK; 028 029import com.echothree.model.data.training.server.entity.TrainingClass; 030import com.echothree.model.data.party.server.entity.Language; 031import com.echothree.model.data.core.server.entity.MimeType; 032 033import com.echothree.model.data.training.common.TrainingClassTranslationConstants; 034import com.echothree.model.data.training.common.pk.TrainingClassTranslationPK; 035import com.echothree.model.data.training.server.value.TrainingClassTranslationValue; 036import com.echothree.model.data.training.server.entity.TrainingClassTranslation; 037import com.echothree.util.common.exception.PersistenceDatabaseException; 038import com.echothree.util.common.exception.PersistenceDatabaseUpdateException; 039import com.echothree.util.common.exception.PersistenceNotNullException; 040import com.echothree.util.server.persistence.BaseFactory; 041import com.echothree.util.server.persistence.EntityIdGenerator; 042import com.echothree.util.server.persistence.EntityPermission; 043import com.echothree.util.server.persistence.PersistenceDebugFlags; 044import com.echothree.util.server.persistence.Session; 045import com.echothree.util.server.persistence.ThreadSession; 046import java.sql.Clob; 047import java.sql.PreparedStatement; 048import java.sql.ResultSet; 049import java.sql.SQLException; 050import java.sql.Types; 051import java.io.ByteArrayInputStream; 052import java.io.StringReader; 053import java.util.ArrayList; 054import java.util.Collection; 055import java.util.HashSet; 056import java.util.List; 057import java.util.Map; 058import java.util.Set; 059import org.apache.commons.logging.Log; 060import org.apache.commons.logging.LogFactory; 061 062public class TrainingClassTranslationFactory 063 implements BaseFactory<TrainingClassTranslationPK, TrainingClassTranslation> { 064 065 //final private static Log log = LogFactory.getLog(TrainingClassTranslationFactory.class); 066 067 final private static String SQL_SELECT_READ_ONLY = "SELECT trnclstr_trainingclasstranslationid, trnclstr_trncls_trainingclassid, trnclstr_lang_languageid, trnclstr_description, trnclstr_overviewmimetypeid, trnclstr_overview, trnclstr_introductionmimetypeid, trnclstr_introduction, trnclstr_fromtime, trnclstr_thrutime FROM trainingclasstranslations WHERE trnclstr_trainingclasstranslationid = ?"; 068 final private static String SQL_SELECT_READ_WRITE = "SELECT trnclstr_trainingclasstranslationid, trnclstr_trncls_trainingclassid, trnclstr_lang_languageid, trnclstr_description, trnclstr_overviewmimetypeid, trnclstr_overview, trnclstr_introductionmimetypeid, trnclstr_introduction, trnclstr_fromtime, trnclstr_thrutime FROM trainingclasstranslations WHERE trnclstr_trainingclasstranslationid = ? FOR UPDATE"; 069 final private static String SQL_INSERT = "INSERT INTO trainingclasstranslations (trnclstr_trainingclasstranslationid, trnclstr_trncls_trainingclassid, trnclstr_lang_languageid, trnclstr_description, trnclstr_overviewmimetypeid, trnclstr_overview, trnclstr_introductionmimetypeid, trnclstr_introduction, trnclstr_fromtime, trnclstr_thrutime) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"; 070 final private static String SQL_UPDATE = "UPDATE trainingclasstranslations SET trnclstr_trncls_trainingclassid = ?, trnclstr_lang_languageid = ?, trnclstr_description = ?, trnclstr_overviewmimetypeid = ?, trnclstr_overview = ?, trnclstr_introductionmimetypeid = ?, trnclstr_introduction = ?, trnclstr_fromtime = ?, trnclstr_thrutime = ? WHERE trnclstr_trainingclasstranslationid = ?"; 071 final private static String SQL_DELETE = "DELETE FROM trainingclasstranslations WHERE trnclstr_trainingclasstranslationid = ?"; 072 final private static String SQL_VALID = "SELECT COUNT(*) FROM trainingclasstranslations WHERE trnclstr_trainingclasstranslationid = ?"; 073 074 final private static String PK_COLUMN = "trnclstr_trainingclasstranslationid"; 075 final private static String ALL_COLUMNS = "trnclstr_trainingclasstranslationid, trnclstr_trncls_trainingclassid, trnclstr_lang_languageid, trnclstr_description, trnclstr_overviewmimetypeid, trnclstr_overview, trnclstr_introductionmimetypeid, trnclstr_introduction, trnclstr_fromtime, trnclstr_thrutime"; 076 final public static String TABLE_NAME = "trainingclasstranslations"; 077 078 final public static String TRNCLSTR_TRAININGCLASSTRANSLATIONID = "trnclstr_trainingclasstranslationid"; 079 final public static String TRNCLSTR_TRNCLS_TRAININGCLASSID = "trnclstr_trncls_trainingclassid"; 080 final public static String TRNCLSTR_LANG_LANGUAGEID = "trnclstr_lang_languageid"; 081 final public static String TRNCLSTR_DESCRIPTION = "trnclstr_description"; 082 final public static String TRNCLSTR_OVERVIEWMIMETYPEID = "trnclstr_overviewmimetypeid"; 083 final public static String TRNCLSTR_OVERVIEW = "trnclstr_overview"; 084 final public static String TRNCLSTR_INTRODUCTIONMIMETYPEID = "trnclstr_introductionmimetypeid"; 085 final public static String TRNCLSTR_INTRODUCTION = "trnclstr_introduction"; 086 final public static String TRNCLSTR_FROMTIME = "trnclstr_fromtime"; 087 final public static String TRNCLSTR_THRUTIME = "trnclstr_thrutime"; 088 089 final private static EntityIdGenerator entityIdGenerator = new EntityIdGenerator(TrainingClassTranslationConstants.COMPONENT_VENDOR_NAME, TrainingClassTranslationConstants.ENTITY_TYPE_NAME); 090 091 /** Creates a new instance of TrainingClassTranslationFactory */ 092 private TrainingClassTranslationFactory() { 093 super(); 094 } 095 096 private static class TrainingClassTranslationFactoryHolder { 097 static TrainingClassTranslationFactory instance = new TrainingClassTranslationFactory(); 098 } 099 100 public static TrainingClassTranslationFactory getInstance() { 101 return TrainingClassTranslationFactoryHolder.instance; 102 } 103 104 @Override 105 public String getPKColumn() { 106 return PK_COLUMN; 107 } 108 109 @Override 110 public String getAllColumns() { 111 return ALL_COLUMNS; 112 } 113 114 @Override 115 public String getTableName() { 116 return TABLE_NAME; 117 } 118 119 @Override 120 public String getComponentVendorName() { 121 return TrainingClassTranslationConstants.COMPONENT_VENDOR_NAME; 122 } 123 124 @Override 125 public String getEntityTypeName() { 126 return TrainingClassTranslationConstants.ENTITY_TYPE_NAME; 127 } 128 129 public PreparedStatement prepareStatement(String query) { 130 return ThreadSession.currentSession().prepareStatement(TrainingClassTranslationFactory.class, query); 131 } 132 133 public TrainingClassTranslationPK getNextPK() { 134 return new TrainingClassTranslationPK(entityIdGenerator.getNextEntityId()); 135 } 136 137 public Set<TrainingClassTranslationPK> getPKsFromResultSetAsSet(ResultSet rs) 138 throws PersistenceDatabaseException { 139 Set<TrainingClassTranslationPK> _result = new HashSet<>(); 140 141 try { 142 while(rs.next()) { 143 _result.add(getPKFromResultSet(rs)); 144 } 145 } catch (SQLException se) { 146 throw new PersistenceDatabaseException(se); 147 } 148 149 return _result; 150 } 151 152 public java.util.List<TrainingClassTranslationPK> getPKsFromResultSetAsList(ResultSet rs) 153 throws PersistenceDatabaseException { 154 java.util.List<TrainingClassTranslationPK> _result = new ArrayList<>(); 155 156 try { 157 while(rs.next()) { 158 _result.add(getPKFromResultSet(rs)); 159 } 160 } catch (SQLException se) { 161 throw new PersistenceDatabaseException(se); 162 } 163 164 return _result; 165 } 166 167 public TrainingClassTranslationPK getPKFromResultSet(ResultSet rs) 168 throws PersistenceDatabaseException { 169 TrainingClassTranslationPK _result; 170 171 try { 172 long trnclstr_trainingclasstranslationid = rs.getLong(TRNCLSTR_TRAININGCLASSTRANSLATIONID); 173 Long _entityId = rs.wasNull() ? null : trnclstr_trainingclasstranslationid; 174 175 _result = new TrainingClassTranslationPK(_entityId); 176 } catch (SQLException se) { 177 throw new PersistenceDatabaseException(se); 178 } 179 180 return _result; 181 } 182 183 public java.util.List<TrainingClassTranslationValue> getValuesFromPKs(Session session, Collection<TrainingClassTranslationPK> pks) 184 throws PersistenceDatabaseException { 185 java.util.List<TrainingClassTranslationValue> _values = new ArrayList<>(pks.size()); 186 187 for(TrainingClassTranslationPK _pk: pks) { 188 _values.add(getValueFromPK(session, _pk)); 189 } 190 191 return _values; 192 } 193 194 public TrainingClassTranslationValue getValueFromPK(Session session, TrainingClassTranslationPK pk) 195 throws PersistenceDatabaseException { 196 TrainingClassTranslationValue _value; 197 198 // See if we already have the entity in the session cache 199 TrainingClassTranslation _entity = (TrainingClassTranslation)session.getEntity(pk); 200 if(_entity == null) 201 _value = getEntityFromPK(session, EntityPermission.READ_ONLY, pk).getTrainingClassTranslationValue(); 202 else 203 _value = _entity.getTrainingClassTranslationValue(); 204 205 return _value; 206 } 207 208 public java.util.List<TrainingClassTranslationValue> getValuesFromResultSet(Session session, ResultSet rs) 209 throws PersistenceDatabaseException { 210 java.util.List<TrainingClassTranslationValue> _result = new ArrayList<>(); 211 212 try { 213 while(rs.next()) { 214 _result.add(getValueFromResultSet(session, rs)); 215 } 216 } catch (SQLException se) { 217 throw new PersistenceDatabaseException(se); 218 } 219 220 return _result; 221 } 222 223 public TrainingClassTranslationValue getValueFromResultSet(Session session, ResultSet rs) 224 throws PersistenceDatabaseException { 225 TrainingClassTranslationValue _value; 226 227 try { 228 Long trnclstr_trainingclasstranslationid = rs.getLong(TRNCLSTR_TRAININGCLASSTRANSLATIONID); 229 TrainingClassTranslationPK _pk = new TrainingClassTranslationPK(trnclstr_trainingclasstranslationid); 230 231 // See if we already have the entity in the session cache 232 TrainingClassTranslation _entity = (TrainingClassTranslation)session.getEntity(_pk); 233 234 if(_entity == null) { 235 Long trnclstr_trncls_trainingclassid = rs.getLong(TRNCLSTR_TRNCLS_TRAININGCLASSID); 236 if(rs.wasNull()) 237 trnclstr_trncls_trainingclassid = null; 238 239 Long trnclstr_lang_languageid = rs.getLong(TRNCLSTR_LANG_LANGUAGEID); 240 if(rs.wasNull()) 241 trnclstr_lang_languageid = null; 242 243 String trnclstr_description = rs.getString(TRNCLSTR_DESCRIPTION); 244 if(rs.wasNull()) 245 trnclstr_description = null; 246 247 Long trnclstr_overviewmimetypeid = rs.getLong(TRNCLSTR_OVERVIEWMIMETYPEID); 248 if(rs.wasNull()) 249 trnclstr_overviewmimetypeid = null; 250 251 Clob trnclstr_overview = rs.getClob(TRNCLSTR_OVERVIEW); 252 if(rs.wasNull()) 253 trnclstr_overview = null; 254 255 Long trnclstr_introductionmimetypeid = rs.getLong(TRNCLSTR_INTRODUCTIONMIMETYPEID); 256 if(rs.wasNull()) 257 trnclstr_introductionmimetypeid = null; 258 259 Clob trnclstr_introduction = rs.getClob(TRNCLSTR_INTRODUCTION); 260 if(rs.wasNull()) 261 trnclstr_introduction = null; 262 263 Long trnclstr_fromtime = rs.getLong(TRNCLSTR_FROMTIME); 264 if(rs.wasNull()) 265 trnclstr_fromtime = null; 266 267 Long trnclstr_thrutime = rs.getLong(TRNCLSTR_THRUTIME); 268 if(rs.wasNull()) 269 trnclstr_thrutime = null; 270 271 _value = new TrainingClassTranslationValue(_pk, new TrainingClassPK(trnclstr_trncls_trainingclassid), new LanguagePK(trnclstr_lang_languageid), trnclstr_description, new MimeTypePK(trnclstr_overviewmimetypeid), trnclstr_overview == null? null: trnclstr_overview.getSubString(1L, (int)trnclstr_overview.length()), new MimeTypePK(trnclstr_introductionmimetypeid), trnclstr_introduction == null? null: trnclstr_introduction.getSubString(1L, (int)trnclstr_introduction.length()), trnclstr_fromtime, trnclstr_thrutime); 272 } else 273 _value = _entity.getTrainingClassTranslationValue(); 274 } catch (SQLException se) { 275 throw new PersistenceDatabaseException(se); 276 } 277 278 return _value; 279 } 280 281 public java.util.List<TrainingClassTranslation> getEntitiesFromPKs(EntityPermission entityPermission, Collection<TrainingClassTranslationPK> pks) 282 throws PersistenceDatabaseException { 283 return getEntitiesFromPKs(ThreadSession.currentSession(), entityPermission, pks); 284 } 285 286 public java.util.List<TrainingClassTranslation> getEntitiesFromPKs(Session session, EntityPermission entityPermission, Collection<TrainingClassTranslationPK> pks) 287 throws PersistenceDatabaseException { 288 java.util.List<TrainingClassTranslation> _entities = new ArrayList<>(pks.size()); 289 290 for(TrainingClassTranslationPK _pk: pks) { 291 _entities.add(getEntityFromPK(session, entityPermission, _pk)); 292 } 293 294 return _entities; 295 } 296 297 public TrainingClassTranslation getEntityFromValue(EntityPermission entityPermission, TrainingClassTranslationValue value) { 298 return getEntityFromPK(ThreadSession.currentSession(), entityPermission, value.getPrimaryKey()); 299 } 300 301 public TrainingClassTranslation getEntityFromValue(Session session, EntityPermission entityPermission, TrainingClassTranslationValue value) { 302 return getEntityFromPK(session, entityPermission, value.getPrimaryKey()); 303 } 304 305 public TrainingClassTranslation getEntityFromPK(EntityPermission entityPermission, TrainingClassTranslationPK pk) 306 throws PersistenceDatabaseException { 307 return getEntityFromPK(ThreadSession.currentSession(), entityPermission, pk); 308 } 309 310 public TrainingClassTranslation getEntityFromCache(Session session, TrainingClassTranslationPK pk) { 311 TrainingClassTranslationValue _value = (TrainingClassTranslationValue)session.getValueCache().get(pk); 312 313 return _value == null ? null : new TrainingClassTranslation(_value, EntityPermission.READ_ONLY); 314 } 315 316 public TrainingClassTranslation getEntityFromPK(Session session, EntityPermission entityPermission, TrainingClassTranslationPK pk) 317 throws PersistenceDatabaseException { 318 TrainingClassTranslation _entity; 319 320 // See if we already have the entity in the session cache 321 _entity = (TrainingClassTranslation)session.getEntity(pk); 322 if(_entity != null) { 323 // If the requested permission is READ_WRITE, and the cached permission is 324 // READ_ONLY, then pretend that the cached object wasn't found, and create 325 // a new entity that is READ_WRITE. 326 if(entityPermission.equals(EntityPermission.READ_WRITE)) { 327 if(_entity.getEntityPermission().equals(EntityPermission.READ_ONLY)) 328 _entity = null; 329 } 330 } 331 332 if(_entity == null && entityPermission.equals(EntityPermission.READ_ONLY)) { 333 _entity = getEntityFromCache(session, pk); 334 } 335 336 if(_entity == null) { 337 PreparedStatement _ps = session.prepareStatement(entityPermission.equals(EntityPermission.READ_ONLY)? SQL_SELECT_READ_ONLY: SQL_SELECT_READ_WRITE); 338 long _entityId = pk.getEntityId(); 339 ResultSet _rs = null; 340 341 try { 342 _ps.setLong(1, _entityId); 343 _rs = _ps.executeQuery(); 344 if(_rs.next()) { 345 _entity = getEntityFromResultSet(session, entityPermission, _rs); 346 } 347 } catch (SQLException se) { 348 throw new PersistenceDatabaseException(se); 349 } finally { 350 if(_rs != null) { 351 try { 352 _rs.close(); 353 } catch (SQLException se) { 354 // do nothing 355 } 356 } 357 } 358 } 359 360 return _entity; 361 } 362 363 public Set<TrainingClassTranslationPK> getPKsFromQueryAsSet(PreparedStatement ps, final Object... params) 364 throws PersistenceDatabaseException { 365 Set<TrainingClassTranslationPK> _pks; 366 ResultSet _rs = null; 367 368 try { 369 if(params.length != 0) { 370 Session.setQueryParams(ps, params); 371 } 372 373 _rs = ps.executeQuery(); 374 _pks = getPKsFromResultSetAsSet(_rs); 375 _rs.close(); 376 } catch (SQLException se) { 377 throw new PersistenceDatabaseException(se); 378 } finally { 379 if(_rs != null) { 380 try { 381 _rs.close(); 382 } catch (SQLException se) { 383 // do nothing 384 } 385 } 386 } 387 388 return _pks; 389 } 390 391 public java.util.List<TrainingClassTranslationPK> getPKsFromQueryAsList(PreparedStatement ps, final Object... params) 392 throws PersistenceDatabaseException { 393 java.util.List<TrainingClassTranslationPK> _pks; 394 ResultSet _rs = null; 395 396 try { 397 if(params.length != 0) { 398 Session.setQueryParams(ps, params); 399 } 400 401 _rs = ps.executeQuery(); 402 _pks = getPKsFromResultSetAsList(_rs); 403 _rs.close(); 404 } catch (SQLException se) { 405 throw new PersistenceDatabaseException(se); 406 } finally { 407 if(_rs != null) { 408 try { 409 _rs.close(); 410 } catch (SQLException se) { 411 // do nothing 412 } 413 } 414 } 415 416 return _pks; 417 } 418 419 public TrainingClassTranslationPK getPKFromQuery(PreparedStatement ps, final Object... params) 420 throws PersistenceDatabaseException { 421 TrainingClassTranslationPK _pk = null; 422 ResultSet _rs = null; 423 424 try { 425 if(params.length != 0) { 426 Session.setQueryParams(ps, params); 427 } 428 429 _rs = ps.executeQuery(); 430 if(_rs.next()) { 431 _pk = getPKFromResultSet(_rs); 432 } 433 _rs.close(); 434 } catch (SQLException se) { 435 throw new PersistenceDatabaseException(se); 436 } finally { 437 if(_rs != null) { 438 try { 439 _rs.close(); 440 } catch (SQLException se) { 441 // do nothing 442 } 443 } 444 } 445 446 return _pk; 447 } 448 449 public java.util.List<TrainingClassTranslation> getEntitiesFromQuery(Session session, EntityPermission entityPermission, Map<EntityPermission, String>queryMap, final Object... params) 450 throws PersistenceDatabaseException { 451 PreparedStatement ps = session.prepareStatement(TrainingClassTranslationFactory.class, queryMap.get(entityPermission)); 452 453 return getEntitiesFromQuery(session, entityPermission, ps, params); 454 } 455 456 public java.util.List<TrainingClassTranslation> getEntitiesFromQuery(EntityPermission entityPermission, Map<EntityPermission, String>queryMap, final Object... params) 457 throws PersistenceDatabaseException { 458 Session session = ThreadSession.currentSession(); 459 PreparedStatement ps = session.prepareStatement(TrainingClassTranslationFactory.class, queryMap.get(entityPermission)); 460 461 return getEntitiesFromQuery(session, entityPermission, ps, params); 462 } 463 464 public java.util.List<TrainingClassTranslation> getEntitiesFromQuery(Session session, EntityPermission entityPermission, Map<EntityPermission, String>queryMap) 465 throws PersistenceDatabaseException { 466 PreparedStatement ps = session.prepareStatement(TrainingClassTranslationFactory.class, queryMap.get(entityPermission)); 467 468 return getEntitiesFromQuery(session, entityPermission, ps); 469 } 470 471 public java.util.List<TrainingClassTranslation> getEntitiesFromQuery(EntityPermission entityPermission, Map<EntityPermission, String>queryMap) 472 throws PersistenceDatabaseException { 473 Session session = ThreadSession.currentSession(); 474 PreparedStatement ps = session.prepareStatement(TrainingClassTranslationFactory.class, queryMap.get(entityPermission)); 475 476 return getEntitiesFromQuery(session, entityPermission, ps); 477 } 478 479 public java.util.List<TrainingClassTranslation> getEntitiesFromQuery(EntityPermission entityPermission, PreparedStatement ps) 480 throws PersistenceDatabaseException { 481 return getEntitiesFromQuery(ThreadSession.currentSession(), entityPermission, ps); 482 } 483 484 public java.util.List<TrainingClassTranslation> getEntitiesFromQuery(EntityPermission entityPermission, PreparedStatement ps, final Object... params) 485 throws PersistenceDatabaseException { 486 return getEntitiesFromQuery(ThreadSession.currentSession(), entityPermission, ps, params); 487 } 488 489 public java.util.List<TrainingClassTranslation> getEntitiesFromQuery(Session session, EntityPermission entityPermission, PreparedStatement ps, final Object... params) 490 throws PersistenceDatabaseException { 491 java.util.List<TrainingClassTranslation> _entities; 492 ResultSet _rs = null; 493 494 try { 495 if(params.length != 0) { 496 Session.setQueryParams(ps, params); 497 } 498 499 _rs = ps.executeQuery(); 500 _entities = getEntitiesFromResultSet(session, entityPermission, _rs); 501 _rs.close(); 502 } catch (SQLException se) { 503 throw new PersistenceDatabaseException(se); 504 } finally { 505 if(_rs != null) { 506 try { 507 _rs.close(); 508 } catch (SQLException se) { 509 // do nothing 510 } 511 } 512 } 513 514 return _entities; 515 } 516 517 public TrainingClassTranslation getEntityFromQuery(Session session, EntityPermission entityPermission, Map<EntityPermission, String>queryMap, final Object... params) 518 throws PersistenceDatabaseException { 519 PreparedStatement ps = session.prepareStatement(TrainingClassTranslationFactory.class, queryMap.get(entityPermission)); 520 521 return getEntityFromQuery(session, entityPermission, ps, params); 522 } 523 524 public TrainingClassTranslation getEntityFromQuery(EntityPermission entityPermission, Map<EntityPermission, String>queryMap, final Object... params) 525 throws PersistenceDatabaseException { 526 Session session = ThreadSession.currentSession(); 527 PreparedStatement ps = session.prepareStatement(TrainingClassTranslationFactory.class, queryMap.get(entityPermission)); 528 529 return getEntityFromQuery(session, entityPermission, ps, params); 530 } 531 532 public TrainingClassTranslation getEntityFromQuery(Session session, EntityPermission entityPermission, Map<EntityPermission, String>queryMap) 533 throws PersistenceDatabaseException { 534 PreparedStatement ps = session.prepareStatement(TrainingClassTranslationFactory.class, queryMap.get(entityPermission)); 535 536 return getEntityFromQuery(session, entityPermission, ps); 537 } 538 539 public TrainingClassTranslation getEntityFromQuery(EntityPermission entityPermission, Map<EntityPermission, String>queryMap) 540 throws PersistenceDatabaseException { 541 Session session = ThreadSession.currentSession(); 542 PreparedStatement ps = session.prepareStatement(TrainingClassTranslationFactory.class, queryMap.get(entityPermission)); 543 544 return getEntityFromQuery(session, entityPermission, ps); 545 } 546 547 public TrainingClassTranslation getEntityFromQuery(EntityPermission entityPermission, PreparedStatement ps) 548 throws PersistenceDatabaseException { 549 return getEntityFromQuery(ThreadSession.currentSession(), entityPermission, ps); 550 } 551 552 public TrainingClassTranslation getEntityFromQuery(EntityPermission entityPermission, PreparedStatement ps, final Object... params) 553 throws PersistenceDatabaseException { 554 return getEntityFromQuery(ThreadSession.currentSession(), entityPermission, ps, params); 555 } 556 557 public TrainingClassTranslation getEntityFromQuery(Session session, EntityPermission entityPermission, PreparedStatement ps, final Object... params) 558 throws PersistenceDatabaseException { 559 TrainingClassTranslation _entity = null; 560 ResultSet _rs = null; 561 562 try { 563 if(params.length != 0) { 564 Session.setQueryParams(ps, params); 565 } 566 567 _rs = ps.executeQuery(); 568 if(_rs.next()) { 569 _entity = getEntityFromResultSet(session, entityPermission, _rs); 570 } 571 _rs.close(); 572 } catch (SQLException se) { 573 throw new PersistenceDatabaseException(se); 574 } finally { 575 if(_rs != null) { 576 try { 577 _rs.close(); 578 } catch (SQLException se) { 579 // do nothing 580 } 581 } 582 } 583 584 return _entity; 585 } 586 587 public java.util.List<TrainingClassTranslation> getEntitiesFromResultSet(EntityPermission entityPermission, ResultSet rs) 588 throws PersistenceDatabaseException { 589 return getEntitiesFromResultSet(ThreadSession.currentSession(), entityPermission, rs); 590 } 591 592 public java.util.List<TrainingClassTranslation> getEntitiesFromResultSet(Session session, EntityPermission entityPermission, ResultSet rs) 593 throws PersistenceDatabaseException { 594 java.util.List<TrainingClassTranslation> _result = new ArrayList<>(); 595 596 try { 597 while(rs.next()) { 598 _result.add(getEntityFromResultSet(session, entityPermission, rs)); 599 } 600 } catch (SQLException se) { 601 throw new PersistenceDatabaseException(se); 602 } 603 604 return _result; 605 } 606 607 public TrainingClassTranslation getEntityFromResultSet(EntityPermission entityPermission, ResultSet rs) 608 throws PersistenceDatabaseException { 609 return getEntityFromResultSet(ThreadSession.currentSession(), entityPermission, rs); 610 } 611 612 public TrainingClassTranslation getEntityFromResultSet(Session session, EntityPermission entityPermission, ResultSet rs) 613 throws PersistenceDatabaseException { 614 TrainingClassTranslation _entity; 615 616 try { 617 Long trnclstr_trainingclasstranslationid = rs.getLong(TRNCLSTR_TRAININGCLASSTRANSLATIONID); 618 TrainingClassTranslationPK _pk = new TrainingClassTranslationPK(trnclstr_trainingclasstranslationid); 619 620 // See if we already have the entity in the session cache 621 _entity = (TrainingClassTranslation)session.getEntity(_pk); 622 if(_entity != null) { 623 // If the requested permission is READ_WRITE, and the cached permission is 624 // READ_ONLY, then pretend that the cached object wasn't found, and create 625 // a new entity that is READ_WRITE. 626 if(entityPermission.equals(EntityPermission.READ_WRITE)) { 627 if(_entity.getEntityPermission().equals(EntityPermission.READ_ONLY)) 628 _entity = null; 629 } 630 } 631 boolean foundInSessionCache = _entity != null; 632 633 if(_entity == null && entityPermission.equals(EntityPermission.READ_ONLY)) { 634 _entity = getEntityFromCache(session, _pk); 635 } 636 637 if(_entity == null) { 638 Long trnclstr_trncls_trainingclassid = rs.getLong(TRNCLSTR_TRNCLS_TRAININGCLASSID); 639 if(rs.wasNull()) 640 trnclstr_trncls_trainingclassid = null; 641 642 Long trnclstr_lang_languageid = rs.getLong(TRNCLSTR_LANG_LANGUAGEID); 643 if(rs.wasNull()) 644 trnclstr_lang_languageid = null; 645 646 String trnclstr_description = rs.getString(TRNCLSTR_DESCRIPTION); 647 if(rs.wasNull()) 648 trnclstr_description = null; 649 650 Long trnclstr_overviewmimetypeid = rs.getLong(TRNCLSTR_OVERVIEWMIMETYPEID); 651 if(rs.wasNull()) 652 trnclstr_overviewmimetypeid = null; 653 654 Clob trnclstr_overview = rs.getClob(TRNCLSTR_OVERVIEW); 655 if(rs.wasNull()) 656 trnclstr_overview = null; 657 658 Long trnclstr_introductionmimetypeid = rs.getLong(TRNCLSTR_INTRODUCTIONMIMETYPEID); 659 if(rs.wasNull()) 660 trnclstr_introductionmimetypeid = null; 661 662 Clob trnclstr_introduction = rs.getClob(TRNCLSTR_INTRODUCTION); 663 if(rs.wasNull()) 664 trnclstr_introduction = null; 665 666 Long trnclstr_fromtime = rs.getLong(TRNCLSTR_FROMTIME); 667 if(rs.wasNull()) 668 trnclstr_fromtime = null; 669 670 Long trnclstr_thrutime = rs.getLong(TRNCLSTR_THRUTIME); 671 if(rs.wasNull()) 672 trnclstr_thrutime = null; 673 674 TrainingClassTranslationValue _value = new TrainingClassTranslationValue(_pk, trnclstr_trncls_trainingclassid == null? null: new TrainingClassPK(trnclstr_trncls_trainingclassid), trnclstr_lang_languageid == null? null: new LanguagePK(trnclstr_lang_languageid), trnclstr_description, trnclstr_overviewmimetypeid == null? null: new MimeTypePK(trnclstr_overviewmimetypeid), trnclstr_overview == null? null: trnclstr_overview.getSubString(1L, (int)trnclstr_overview.length()), trnclstr_introductionmimetypeid == null? null: new MimeTypePK(trnclstr_introductionmimetypeid), trnclstr_introduction == null? null: trnclstr_introduction.getSubString(1L, (int)trnclstr_introduction.length()), trnclstr_fromtime, trnclstr_thrutime); 675 _entity = new TrainingClassTranslation(_value, entityPermission); 676 } 677 678 if(!foundInSessionCache) { 679 if(entityPermission.equals(EntityPermission.READ_ONLY)) { 680 session.putReadOnlyEntity(_pk, _entity); 681 session.getValueCache().put(_entity.getTrainingClassTranslationValue()); 682 } else { 683 session.putReadWriteEntity(_pk, _entity); 684 } 685 } 686 } catch (SQLException se) { 687 throw new PersistenceDatabaseException(se); 688 } 689 690 return _entity; 691 } 692 693 public TrainingClassTranslation create(Session session, TrainingClass trainingClass, Language language, String description, MimeType overviewMimeType, String overview, MimeType introductionMimeType, String introduction, Long fromTime, Long thruTime) 694 throws PersistenceDatabaseException, PersistenceNotNullException { 695 return create(session, trainingClass == null ? null : trainingClass.getPrimaryKey(), language == null ? null : language.getPrimaryKey(), description, overviewMimeType == null ? null : overviewMimeType.getPrimaryKey(), overview, introductionMimeType == null ? null : introductionMimeType.getPrimaryKey(), introduction, fromTime, thruTime); 696 } 697 698 public TrainingClassTranslation create(TrainingClass trainingClass, Language language, String description, MimeType overviewMimeType, String overview, MimeType introductionMimeType, String introduction, Long fromTime, Long thruTime) 699 throws PersistenceDatabaseException, PersistenceNotNullException { 700 return create(ThreadSession.currentSession(), trainingClass == null ? null : trainingClass.getPrimaryKey(), language == null ? null : language.getPrimaryKey(), description, overviewMimeType == null ? null : overviewMimeType.getPrimaryKey(), overview, introductionMimeType == null ? null : introductionMimeType.getPrimaryKey(), introduction, fromTime, thruTime); 701 } 702 703 private void bindForCreate(PreparedStatement _ps, TrainingClassTranslationValue _value) 704 throws SQLException { 705 _ps.setLong(1, _value.getEntityId()); 706 707 TrainingClassPK trnclstr_trncls_trainingclassid = _value.getTrainingClassPK(); 708 if(trnclstr_trncls_trainingclassid == null) 709 _ps.setNull(2, Types.BIGINT); 710 else 711 _ps.setLong(2, trnclstr_trncls_trainingclassid.getEntityId()); 712 713 LanguagePK trnclstr_lang_languageid = _value.getLanguagePK(); 714 if(trnclstr_lang_languageid == null) 715 _ps.setNull(3, Types.BIGINT); 716 else 717 _ps.setLong(3, trnclstr_lang_languageid.getEntityId()); 718 719 String trnclstr_description = _value.getDescription(); 720 if(trnclstr_description == null) 721 _ps.setNull(4, Types.VARCHAR); 722 else 723 _ps.setString(4, trnclstr_description); 724 725 MimeTypePK trnclstr_overviewmimetypeid = _value.getOverviewMimeTypePK(); 726 if(trnclstr_overviewmimetypeid == null) 727 _ps.setNull(5, Types.BIGINT); 728 else 729 _ps.setLong(5, trnclstr_overviewmimetypeid.getEntityId()); 730 731 String trnclstr_overview = _value.getOverview(); 732 if(trnclstr_overview == null) 733 _ps.setNull(6, Types.CLOB); 734 else 735 _ps.setCharacterStream(6, new StringReader(trnclstr_overview), trnclstr_overview.length()); 736 737 MimeTypePK trnclstr_introductionmimetypeid = _value.getIntroductionMimeTypePK(); 738 if(trnclstr_introductionmimetypeid == null) 739 _ps.setNull(7, Types.BIGINT); 740 else 741 _ps.setLong(7, trnclstr_introductionmimetypeid.getEntityId()); 742 743 String trnclstr_introduction = _value.getIntroduction(); 744 if(trnclstr_introduction == null) 745 _ps.setNull(8, Types.CLOB); 746 else 747 _ps.setCharacterStream(8, new StringReader(trnclstr_introduction), trnclstr_introduction.length()); 748 749 Long trnclstr_fromtime = _value.getFromTime(); 750 if(trnclstr_fromtime == null) 751 _ps.setNull(9, Types.BIGINT); 752 else 753 _ps.setLong(9, trnclstr_fromtime); 754 755 Long trnclstr_thrutime = _value.getThruTime(); 756 if(trnclstr_thrutime == null) 757 _ps.setNull(10, Types.BIGINT); 758 else 759 _ps.setLong(10, trnclstr_thrutime); 760 761 } 762 763 public TrainingClassTranslation create(Session session, TrainingClassPK trainingClassPK, LanguagePK languagePK, String description, MimeTypePK overviewMimeTypePK, String overview, MimeTypePK introductionMimeTypePK, String introduction, Long fromTime, Long thruTime) 764 throws PersistenceDatabaseException, PersistenceNotNullException { 765 TrainingClassTranslationPK _pk = getNextPK(); 766 TrainingClassTranslationValue _value = new TrainingClassTranslationValue(_pk, trainingClassPK, languagePK, description, overviewMimeTypePK, overview, introductionMimeTypePK, introduction, fromTime, thruTime); 767 768 PreparedStatement _ps = session.prepareStatement(SQL_INSERT); 769 770 try { 771 bindForCreate(_ps, _value); 772 773 if(PersistenceDebugFlags.CheckEntityInsertRowCount) { 774 int _count = _ps.executeUpdate(); 775 776 if(_count != 1) { 777 throw new PersistenceDatabaseUpdateException("insert failed, _count = " + _count); 778 } 779 } else { 780 _ps.executeUpdate(); 781 } 782 783 session.getValueCache().put(_value); 784 } catch (SQLException se) { 785 throw new PersistenceDatabaseException(se); 786 } 787 788 TrainingClassTranslation _entity = new TrainingClassTranslation(_value, EntityPermission.READ_ONLY); 789 session.putReadOnlyEntity(_pk, _entity); 790 791 return _entity; 792 } 793 794 public TrainingClassTranslation create(TrainingClassPK trainingClassPK, LanguagePK languagePK, String description, MimeTypePK overviewMimeTypePK, String overview, MimeTypePK introductionMimeTypePK, String introduction, Long fromTime, Long thruTime) 795 throws PersistenceDatabaseException, PersistenceNotNullException { 796 return create(ThreadSession.currentSession(), trainingClassPK, languagePK, description, overviewMimeTypePK, overview, introductionMimeTypePK, introduction, fromTime, thruTime); 797 } 798 799 public void create(Session session, Collection<TrainingClassTranslationValue> _values) 800 throws PersistenceDatabaseException, PersistenceNotNullException { 801 int _size = _values.size(); 802 803 if(_size > 0) { 804 PreparedStatement _ps = session.prepareStatement(SQL_INSERT); 805 List<TrainingClassTranslationValue> _cacheValues = new ArrayList<>(_size); 806 807 try { 808 for(TrainingClassTranslationValue _value : _values) { 809 _value.setEntityId(entityIdGenerator.getNextEntityId()); 810 bindForCreate(_ps, _value); 811 812 _ps.addBatch(); 813 814 _cacheValues.add(_value); 815 } 816 817 if(PersistenceDebugFlags.CheckEntityInsertRowCount) { 818 int[] _counts = _ps.executeBatch(); 819 820 for(int _countOffset = 0 ; _countOffset < _size ; _countOffset++) { 821 if(_counts[_countOffset] != 1 && _counts[_countOffset] != PreparedStatement.SUCCESS_NO_INFO) { 822 throw new PersistenceDatabaseUpdateException("batch insert failed, _counts[" + _countOffset + "] = " + _counts[_countOffset]); 823 } 824 } 825 } else { 826 _ps.executeBatch(); 827 } 828 829 _ps.clearBatch(); 830 } catch (SQLException se) { 831 throw new PersistenceDatabaseException(se); 832 } 833 834 _cacheValues.forEach((_cacheValue) -> { 835 TrainingClassTranslation _cacheEntity = new TrainingClassTranslation(_cacheValue, EntityPermission.READ_ONLY); 836 837 session.putReadOnlyEntity(_cacheValue.getPrimaryKey(), _cacheEntity); 838 }); 839 } 840 } 841 842 public void create(Collection<TrainingClassTranslationValue> _values) 843 throws PersistenceDatabaseException, PersistenceNotNullException { 844 create(ThreadSession.currentSession(), _values); 845 } 846 847 private boolean bindForStore(PreparedStatement _ps, TrainingClassTranslationValue _value) 848 throws SQLException { 849 boolean _hasBeenModified = _value.hasBeenModified(); 850 851 if(_hasBeenModified) { 852 TrainingClassPK trnclstr_trncls_trainingclassid = _value.getTrainingClassPK(); 853 if(trnclstr_trncls_trainingclassid == null) 854 _ps.setNull(1, Types.BIGINT); 855 else 856 _ps.setLong(1, trnclstr_trncls_trainingclassid.getEntityId()); 857 858 LanguagePK trnclstr_lang_languageid = _value.getLanguagePK(); 859 if(trnclstr_lang_languageid == null) 860 _ps.setNull(2, Types.BIGINT); 861 else 862 _ps.setLong(2, trnclstr_lang_languageid.getEntityId()); 863 864 String trnclstr_description = _value.getDescription(); 865 if(trnclstr_description == null) 866 _ps.setNull(3, Types.VARCHAR); 867 else 868 _ps.setString(3, trnclstr_description); 869 870 MimeTypePK trnclstr_overviewmimetypeid = _value.getOverviewMimeTypePK(); 871 if(trnclstr_overviewmimetypeid == null) 872 _ps.setNull(4, Types.BIGINT); 873 else 874 _ps.setLong(4, trnclstr_overviewmimetypeid.getEntityId()); 875 876 String trnclstr_overview = _value.getOverview(); 877 if(trnclstr_overview == null) 878 _ps.setNull(5, Types.CLOB); 879 else 880 _ps.setCharacterStream(5, new StringReader(trnclstr_overview), trnclstr_overview.length()); 881 882 MimeTypePK trnclstr_introductionmimetypeid = _value.getIntroductionMimeTypePK(); 883 if(trnclstr_introductionmimetypeid == null) 884 _ps.setNull(6, Types.BIGINT); 885 else 886 _ps.setLong(6, trnclstr_introductionmimetypeid.getEntityId()); 887 888 String trnclstr_introduction = _value.getIntroduction(); 889 if(trnclstr_introduction == null) 890 _ps.setNull(7, Types.CLOB); 891 else 892 _ps.setCharacterStream(7, new StringReader(trnclstr_introduction), trnclstr_introduction.length()); 893 894 Long trnclstr_fromtime = _value.getFromTime(); 895 if(trnclstr_fromtime == null) 896 _ps.setNull(8, Types.BIGINT); 897 else 898 _ps.setLong(8, trnclstr_fromtime); 899 900 Long trnclstr_thrutime = _value.getThruTime(); 901 if(trnclstr_thrutime == null) 902 _ps.setNull(9, Types.BIGINT); 903 else 904 _ps.setLong(9, trnclstr_thrutime); 905 906 _ps.setLong(10, _value.getPrimaryKey().getEntityId()); 907 908 _value.clearHasBeenModified(); 909 } 910 911 return _hasBeenModified; 912 } 913 914 @Override 915 public void store(Session session, TrainingClassTranslation entity) 916 throws PersistenceDatabaseException { 917 PreparedStatement _ps = session.prepareStatement(SQL_UPDATE); 918 919 try { 920 TrainingClassTranslationValue _value = entity.getTrainingClassTranslationValue(); 921 922 if(bindForStore(_ps, _value)) { 923 if(PersistenceDebugFlags.CheckEntityUpdateRowCount) { 924 int _count = _ps.executeUpdate(); 925 926 if(_count != 1) { 927 throw new PersistenceDatabaseUpdateException("update failed, _count = " + _count); 928 } 929 } else { 930 _ps.executeUpdate(); 931 } 932 933 session.getValueCache().put(_value); 934 } 935 } catch (SQLException se) { 936 throw new PersistenceDatabaseException(se); 937 } 938 } 939 940 @Override 941 public void store(Session session, Collection<TrainingClassTranslation> entities) 942 throws PersistenceDatabaseException { 943 if(entities.size() > 0) { 944 PreparedStatement _ps = session.prepareStatement(SQL_UPDATE); 945 int _modifiedEntities = 0; 946 947 try { 948 for(TrainingClassTranslation entity : entities) { 949 if(bindForStore(_ps, entity.getTrainingClassTranslationValue())) { 950 _ps.addBatch(); 951 _modifiedEntities++; 952 } 953 } 954 955 if(_modifiedEntities != 0) { 956 if(PersistenceDebugFlags.CheckEntityUpdateRowCount) { 957 int[] _counts = _ps.executeBatch(); 958 959 for(int _countOffset = 0 ; _countOffset < _modifiedEntities ; _countOffset++) { 960 if(_counts[_countOffset] != 1 && _counts[_countOffset] != PreparedStatement.SUCCESS_NO_INFO) { 961 throw new PersistenceDatabaseUpdateException("batch update failed, _counts[" + _countOffset + "] = " + _counts[_countOffset]); 962 } 963 } 964 } else { 965 _ps.executeBatch(); 966 } 967 968 _ps.clearBatch(); 969 970 entities.forEach((entity) -> { 971 session.getValueCache().put(entity.getTrainingClassTranslationValue()); 972 }); 973 } 974 } catch (SQLException se) { 975 throw new PersistenceDatabaseException(se); 976 } 977 } 978 } 979 980 @Override 981 public void store(Collection<TrainingClassTranslation> entities) 982 throws PersistenceDatabaseException { 983 store(ThreadSession.currentSession(), entities); 984 } 985 986 @Override 987 public void remove(Session session, TrainingClassTranslation entity) 988 throws PersistenceDatabaseException { 989 remove(session, entity.getPrimaryKey()); 990 } 991 992 @Override 993 public void remove(Session session, TrainingClassTranslationPK pk) 994 throws PersistenceDatabaseException { 995 PreparedStatement _ps = session.prepareStatement(SQL_DELETE); 996 long _entityId = pk.getEntityId(); 997 998 try { 999 _ps.setLong(1, _entityId); 1000 1001 if(PersistenceDebugFlags.CheckEntityDeleteRowCount) { 1002 int _count = _ps.executeUpdate(); 1003 1004 if(_count != 1) { 1005 throw new PersistenceDatabaseUpdateException("remove failed, _count = " + _count); 1006 } 1007 } else { 1008 _ps.executeUpdate(); 1009 } 1010 1011 session.getValueCache().remove(pk); 1012 } catch (SQLException se) { 1013 throw new PersistenceDatabaseException(se); 1014 } 1015 1016 session.removed(pk, false); 1017 } 1018 1019 @Override 1020 public void remove(Session session, Collection<TrainingClassTranslationPK> pks) 1021 throws PersistenceDatabaseException { 1022 if(pks.size() > 0) { 1023 PreparedStatement _ps = session.prepareStatement(SQL_DELETE); 1024 int _modifiedEntities = 0; 1025 1026 try { 1027 for(TrainingClassTranslationPK pk : pks) { 1028 long _entityId = pk.getEntityId(); 1029 1030 _ps.setLong(1, _entityId); 1031 1032 _ps.addBatch(); 1033 _modifiedEntities++; 1034 } 1035 1036 if(_modifiedEntities != 0) { 1037 if(PersistenceDebugFlags.CheckEntityDeleteRowCount) { 1038 int[] _counts = _ps.executeBatch(); 1039 1040 for(int _countOffset = 0 ; _countOffset < _modifiedEntities ; _countOffset++) { 1041 if(_counts[_countOffset] != 1 && _counts[_countOffset] != PreparedStatement.SUCCESS_NO_INFO) { 1042 throw new PersistenceDatabaseUpdateException("batch remove failed, _counts[" + _countOffset + "] = " + _counts[_countOffset]); 1043 } 1044 } 1045 } else { 1046 _ps.executeBatch(); 1047 } 1048 1049 _ps.clearBatch(); 1050 1051 pks.forEach((pk) -> { 1052 session.getValueCache().remove(pk); 1053 }); 1054 } 1055 } catch (SQLException se) { 1056 throw new PersistenceDatabaseException(se); 1057 } 1058 1059 pks.forEach((pk) -> { 1060 session.removed(pk, true); 1061 }); 1062 } 1063 } 1064 1065 @Override 1066 public void remove(Collection<TrainingClassTranslationPK> pks) 1067 throws PersistenceDatabaseException { 1068 remove(ThreadSession.currentSession(), pks); 1069 } 1070 1071 @Override 1072 public boolean validPK(Session session, TrainingClassTranslationPK pk) 1073 throws PersistenceDatabaseException { 1074 boolean valid = false; 1075 PreparedStatement _ps = session.prepareStatement(SQL_VALID); 1076 ResultSet _rs = null; 1077 1078 try { 1079 _ps.setLong(1, pk.getEntityId()); 1080 1081 _rs = _ps.executeQuery(); 1082 if(_rs.next()) { 1083 long _count = _rs.getLong(1); 1084 if(_rs.wasNull()) 1085 _count = 0; 1086 1087 if(_count == 1) 1088 valid = true; 1089 } 1090 } catch (SQLException se) { 1091 throw new PersistenceDatabaseException(se); 1092 } finally { 1093 if(_rs != null) { 1094 try { 1095 _rs.close(); 1096 } catch (SQLException se) { 1097 // do nothing 1098 } 1099 } 1100 } 1101 1102 return valid; 1103 } 1104 1105}