001// -------------------------------------------------------------------------------- 002// Copyright 2002-2026 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 * SubscriptionDetailFactory.java 021 */ 022 023package com.echothree.model.data.subscription.server.factory; 024 025import com.echothree.model.data.subscription.common.pk.SubscriptionPK; 026import com.echothree.model.data.subscription.common.pk.SubscriptionTypePK; 027import com.echothree.model.data.party.common.pk.PartyPK; 028 029import com.echothree.model.data.subscription.server.entity.Subscription; 030import com.echothree.model.data.subscription.server.entity.SubscriptionType; 031import com.echothree.model.data.party.server.entity.Party; 032 033import com.echothree.model.data.subscription.common.SubscriptionDetailConstants; 034import com.echothree.model.data.subscription.common.pk.SubscriptionDetailPK; 035import com.echothree.model.data.subscription.server.value.SubscriptionDetailValue; 036import com.echothree.model.data.subscription.server.entity.SubscriptionDetail; 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 java.sql.PreparedStatement; 046import java.sql.ResultSet; 047import java.sql.SQLException; 048import java.sql.Types; 049import java.io.ByteArrayInputStream; 050import java.io.StringReader; 051import java.util.ArrayList; 052import java.util.Collection; 053import java.util.HashSet; 054import java.util.List; 055import java.util.Map; 056import java.util.Set; 057import javax.enterprise.context.ApplicationScoped; 058import javax.enterprise.inject.spi.CDI; 059import javax.inject.Inject; 060import org.jooq.ResultQuery; 061import org.slf4j.Logger; 062import org.slf4j.LoggerFactory; 063 064@ApplicationScoped 065public class SubscriptionDetailFactory 066 implements BaseFactory<SubscriptionDetailPK, SubscriptionDetail> { 067 068 @Inject 069 Session session; 070 071 //private static final Logger log = LoggerFactory.getLogger(SubscriptionDetailFactory.class); 072 073 final private static String SQL_SELECT_READ_ONLY = "SELECT subscrdt_subscriptiondetailid, subscrdt_subscr_subscriptionid, subscrdt_subscriptionname, subscrdt_subscrtyp_subscriptiontypeid, subscrdt_par_partyid, subscrdt_starttime, subscrdt_endtime, subscrdt_fromtime, subscrdt_thrutime FROM subscriptiondetails WHERE subscrdt_subscriptiondetailid = ?"; 074 final private static String SQL_SELECT_READ_WRITE = "SELECT subscrdt_subscriptiondetailid, subscrdt_subscr_subscriptionid, subscrdt_subscriptionname, subscrdt_subscrtyp_subscriptiontypeid, subscrdt_par_partyid, subscrdt_starttime, subscrdt_endtime, subscrdt_fromtime, subscrdt_thrutime FROM subscriptiondetails WHERE subscrdt_subscriptiondetailid = ? FOR UPDATE"; 075 final private static String SQL_INSERT = "INSERT INTO subscriptiondetails (subscrdt_subscriptiondetailid, subscrdt_subscr_subscriptionid, subscrdt_subscriptionname, subscrdt_subscrtyp_subscriptiontypeid, subscrdt_par_partyid, subscrdt_starttime, subscrdt_endtime, subscrdt_fromtime, subscrdt_thrutime) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)"; 076 final private static String SQL_UPDATE = "UPDATE subscriptiondetails SET subscrdt_subscr_subscriptionid = ?, subscrdt_subscriptionname = ?, subscrdt_subscrtyp_subscriptiontypeid = ?, subscrdt_par_partyid = ?, subscrdt_starttime = ?, subscrdt_endtime = ?, subscrdt_fromtime = ?, subscrdt_thrutime = ? WHERE subscrdt_subscriptiondetailid = ?"; 077 final private static String SQL_DELETE = "DELETE FROM subscriptiondetails WHERE subscrdt_subscriptiondetailid = ?"; 078 final private static String SQL_VALID = "SELECT COUNT(*) FROM subscriptiondetails WHERE subscrdt_subscriptiondetailid = ?"; 079 080 final public static String SUBSCRDT_SUBSCRIPTIONDETAILID = "subscrdt_subscriptiondetailid"; 081 final public static String SUBSCRDT_SUBSCR_SUBSCRIPTIONID = "subscrdt_subscr_subscriptionid"; 082 final public static String SUBSCRDT_SUBSCRIPTIONNAME = "subscrdt_subscriptionname"; 083 final public static String SUBSCRDT_SUBSCRTYP_SUBSCRIPTIONTYPEID = "subscrdt_subscrtyp_subscriptiontypeid"; 084 final public static String SUBSCRDT_PAR_PARTYID = "subscrdt_par_partyid"; 085 final public static String SUBSCRDT_STARTTIME = "subscrdt_starttime"; 086 final public static String SUBSCRDT_ENDTIME = "subscrdt_endtime"; 087 final public static String SUBSCRDT_FROMTIME = "subscrdt_fromtime"; 088 final public static String SUBSCRDT_THRUTIME = "subscrdt_thrutime"; 089 090 final private static EntityIdGenerator entityIdGenerator = new EntityIdGenerator(SubscriptionDetailConstants.COMPONENT_VENDOR_NAME, SubscriptionDetailConstants.ENTITY_TYPE_NAME); 091 092 /** Creates a new instance of SubscriptionDetailFactory */ 093 protected SubscriptionDetailFactory() { 094 super(); 095 } 096 097 public static SubscriptionDetailFactory getInstance() { 098 return CDI.current().select(SubscriptionDetailFactory.class).get(); 099 } 100 101 @Override 102 public String getComponentVendorName() { 103 return SubscriptionDetailConstants.COMPONENT_VENDOR_NAME; 104 } 105 106 @Override 107 public String getEntityTypeName() { 108 return SubscriptionDetailConstants.ENTITY_TYPE_NAME; 109 } 110 111 public PreparedStatement prepareStatement(String query) { 112 return session.prepareStatement(query); 113 } 114 115 public SubscriptionDetailPK getNextPK() { 116 return new SubscriptionDetailPK(entityIdGenerator.getNextEntityId()); 117 } 118 119 public Set<SubscriptionDetailPK> getPKsFromResultSetAsSet(ResultSet rs) 120 throws PersistenceDatabaseException { 121 Set<SubscriptionDetailPK> _result = new HashSet<>(); 122 123 try { 124 while(rs.next()) { 125 _result.add(getPKFromResultSet(rs)); 126 } 127 } catch (SQLException se) { 128 throw new PersistenceDatabaseException(se); 129 } 130 131 return _result; 132 } 133 134 public java.util.List<SubscriptionDetailPK> getPKsFromResultSetAsList(ResultSet rs) 135 throws PersistenceDatabaseException { 136 java.util.List<SubscriptionDetailPK> _result = new ArrayList<>(); 137 138 try { 139 while(rs.next()) { 140 _result.add(getPKFromResultSet(rs)); 141 } 142 } catch (SQLException se) { 143 throw new PersistenceDatabaseException(se); 144 } 145 146 return _result; 147 } 148 149 public SubscriptionDetailPK getPKFromResultSet(ResultSet rs) 150 throws PersistenceDatabaseException { 151 SubscriptionDetailPK _result; 152 153 try { 154 long subscrdt_subscriptiondetailid = rs.getLong(SUBSCRDT_SUBSCRIPTIONDETAILID); 155 Long _entityId = rs.wasNull() ? null : subscrdt_subscriptiondetailid; 156 157 _result = new SubscriptionDetailPK(_entityId); 158 } catch (SQLException se) { 159 throw new PersistenceDatabaseException(se); 160 } 161 162 return _result; 163 } 164 165 public java.util.List<SubscriptionDetailValue> getValuesFromPKs(Collection<SubscriptionDetailPK> pks) 166 throws PersistenceDatabaseException { 167 java.util.List<SubscriptionDetailValue> _values = new ArrayList<>(pks.size()); 168 169 for(SubscriptionDetailPK _pk: pks) { 170 _values.add(getValueFromPK(_pk)); 171 } 172 173 return _values; 174 } 175 176 public SubscriptionDetailValue getValueFromPK(SubscriptionDetailPK pk) 177 throws PersistenceDatabaseException { 178 SubscriptionDetailValue _value; 179 180 // See if we already have the entity in the session cache 181 SubscriptionDetail _entity = (SubscriptionDetail)session.getEntity(pk); 182 if(_entity == null) 183 _value = getEntityFromPK(EntityPermission.READ_ONLY, pk).getSubscriptionDetailValue(); 184 else 185 _value = _entity.getSubscriptionDetailValue(); 186 187 return _value; 188 } 189 190 public java.util.List<SubscriptionDetailValue> getValuesFromResultSet(ResultSet rs) 191 throws PersistenceDatabaseException { 192 java.util.List<SubscriptionDetailValue> _result = new ArrayList<>(); 193 194 try { 195 while(rs.next()) { 196 _result.add(getValueFromResultSet(rs)); 197 } 198 } catch (SQLException se) { 199 throw new PersistenceDatabaseException(se); 200 } 201 202 return _result; 203 } 204 205 public SubscriptionDetailValue getValueFromResultSet(ResultSet rs) 206 throws PersistenceDatabaseException { 207 SubscriptionDetailValue _value; 208 209 try { 210 Long subscrdt_subscriptiondetailid = rs.getLong(SUBSCRDT_SUBSCRIPTIONDETAILID); 211 SubscriptionDetailPK _pk = new SubscriptionDetailPK(subscrdt_subscriptiondetailid); 212 213 // See if we already have the entity in the session cache 214 SubscriptionDetail _entity = (SubscriptionDetail)session.getEntity(_pk); 215 216 if(_entity == null) { 217 Long subscrdt_subscr_subscriptionid = rs.getLong(SUBSCRDT_SUBSCR_SUBSCRIPTIONID); 218 if(rs.wasNull()) 219 subscrdt_subscr_subscriptionid = null; 220 221 String subscrdt_subscriptionname = rs.getString(SUBSCRDT_SUBSCRIPTIONNAME); 222 if(rs.wasNull()) 223 subscrdt_subscriptionname = null; 224 225 Long subscrdt_subscrtyp_subscriptiontypeid = rs.getLong(SUBSCRDT_SUBSCRTYP_SUBSCRIPTIONTYPEID); 226 if(rs.wasNull()) 227 subscrdt_subscrtyp_subscriptiontypeid = null; 228 229 Long subscrdt_par_partyid = rs.getLong(SUBSCRDT_PAR_PARTYID); 230 if(rs.wasNull()) 231 subscrdt_par_partyid = null; 232 233 Long subscrdt_starttime = rs.getLong(SUBSCRDT_STARTTIME); 234 if(rs.wasNull()) 235 subscrdt_starttime = null; 236 237 Long subscrdt_endtime = rs.getLong(SUBSCRDT_ENDTIME); 238 if(rs.wasNull()) 239 subscrdt_endtime = null; 240 241 Long subscrdt_fromtime = rs.getLong(SUBSCRDT_FROMTIME); 242 if(rs.wasNull()) 243 subscrdt_fromtime = null; 244 245 Long subscrdt_thrutime = rs.getLong(SUBSCRDT_THRUTIME); 246 if(rs.wasNull()) 247 subscrdt_thrutime = null; 248 249 _value = new SubscriptionDetailValue(_pk, new SubscriptionPK(subscrdt_subscr_subscriptionid), subscrdt_subscriptionname, new SubscriptionTypePK(subscrdt_subscrtyp_subscriptiontypeid), new PartyPK(subscrdt_par_partyid), subscrdt_starttime, subscrdt_endtime, subscrdt_fromtime, subscrdt_thrutime); 250 } else 251 _value = _entity.getSubscriptionDetailValue(); 252 } catch (SQLException se) { 253 throw new PersistenceDatabaseException(se); 254 } 255 256 return _value; 257 } 258 259 public java.util.List<SubscriptionDetail> getEntitiesFromPKs(EntityPermission entityPermission, Collection<SubscriptionDetailPK> pks) 260 throws PersistenceDatabaseException { 261 java.util.List<SubscriptionDetail> _entities = new ArrayList<>(pks.size()); 262 263 for(SubscriptionDetailPK _pk: pks) { 264 _entities.add(getEntityFromPK(entityPermission, _pk)); 265 } 266 267 return _entities; 268 } 269 270 public SubscriptionDetail getEntityFromValue(EntityPermission entityPermission, SubscriptionDetailValue value) { 271 return getEntityFromPK(entityPermission, value.getPrimaryKey()); 272 } 273 274 public SubscriptionDetail getEntityFromCache(SubscriptionDetailPK pk) { 275 SubscriptionDetailValue _value = (SubscriptionDetailValue)session.getValueCache().get(pk); 276 277 return _value == null ? null : new SubscriptionDetail(_value, EntityPermission.READ_ONLY); 278 } 279 280 public SubscriptionDetail getEntityFromPK(EntityPermission entityPermission, SubscriptionDetailPK pk) 281 throws PersistenceDatabaseException { 282 SubscriptionDetail _entity; 283 284 // See if we already have the entity in the session cache 285 _entity = (SubscriptionDetail)session.getEntity(pk); 286 if(_entity != null) { 287 // If the requested permission is READ_WRITE, and the cached permission is 288 // READ_ONLY, then pretend that the cached object wasn't found, and create 289 // a new entity that is READ_WRITE. 290 if(entityPermission.equals(EntityPermission.READ_WRITE)) { 291 if(_entity.getEntityPermission().equals(EntityPermission.READ_ONLY)) 292 _entity = null; 293 } 294 } 295 296 if(_entity == null && entityPermission.equals(EntityPermission.READ_ONLY)) { 297 _entity = getEntityFromCache(pk); 298 } 299 300 if(_entity == null) { 301 PreparedStatement _ps = session.prepareStatement(entityPermission.equals(EntityPermission.READ_ONLY)? SQL_SELECT_READ_ONLY: SQL_SELECT_READ_WRITE); 302 long _entityId = pk.getEntityId(); 303 ResultSet _rs = null; 304 305 try { 306 _ps.setLong(1, _entityId); 307 _rs = _ps.executeQuery(); 308 if(_rs.next()) { 309 _entity = getEntityFromResultSet(entityPermission, _rs); 310 } 311 } catch (SQLException se) { 312 throw new PersistenceDatabaseException(se); 313 } finally { 314 if(_rs != null) { 315 try { 316 _rs.close(); 317 } catch (SQLException se) { 318 // do nothing 319 } 320 } 321 } 322 } 323 324 return _entity; 325 } 326 327 public Set<SubscriptionDetailPK> getPKsFromQueryAsSet(PreparedStatement ps, final Object... params) 328 throws PersistenceDatabaseException { 329 Set<SubscriptionDetailPK> _pks; 330 ResultSet _rs = null; 331 332 try { 333 if(params.length != 0) { 334 Session.setQueryParams(ps, params); 335 } 336 337 _rs = ps.executeQuery(); 338 _pks = getPKsFromResultSetAsSet(_rs); 339 _rs.close(); 340 } catch (SQLException se) { 341 throw new PersistenceDatabaseException(se); 342 } finally { 343 if(_rs != null) { 344 try { 345 _rs.close(); 346 } catch (SQLException se) { 347 // do nothing 348 } 349 } 350 } 351 352 return _pks; 353 } 354 355 public java.util.List<SubscriptionDetailPK> getPKsFromQueryAsList(PreparedStatement ps, final Object... params) 356 throws PersistenceDatabaseException { 357 java.util.List<SubscriptionDetailPK> _pks; 358 ResultSet _rs = null; 359 360 try { 361 if(params.length != 0) { 362 Session.setQueryParams(ps, params); 363 } 364 365 _rs = ps.executeQuery(); 366 _pks = getPKsFromResultSetAsList(_rs); 367 _rs.close(); 368 } catch (SQLException se) { 369 throw new PersistenceDatabaseException(se); 370 } finally { 371 if(_rs != null) { 372 try { 373 _rs.close(); 374 } catch (SQLException se) { 375 // do nothing 376 } 377 } 378 } 379 380 return _pks; 381 } 382 383 public SubscriptionDetailPK getPKFromQuery(PreparedStatement ps, final Object... params) 384 throws PersistenceDatabaseException { 385 SubscriptionDetailPK _pk = null; 386 ResultSet _rs = null; 387 388 try { 389 if(params.length != 0) { 390 Session.setQueryParams(ps, params); 391 } 392 393 _rs = ps.executeQuery(); 394 if(_rs.next()) { 395 _pk = getPKFromResultSet(_rs); 396 } 397 _rs.close(); 398 } catch (SQLException se) { 399 throw new PersistenceDatabaseException(se); 400 } finally { 401 if(_rs != null) { 402 try { 403 _rs.close(); 404 } catch (SQLException se) { 405 // do nothing 406 } 407 } 408 } 409 410 return _pk; 411 } 412 413 public java.util.List<SubscriptionDetail> getEntitiesFromQuery(EntityPermission entityPermission, Map<EntityPermission, String>queryMap, final Object... params) 414 throws PersistenceDatabaseException { 415 PreparedStatement ps = session.prepareStatement(queryMap.get(entityPermission)); 416 417 return getEntitiesFromQuery(entityPermission, ps, params); 418 } 419 420 public java.util.List<SubscriptionDetail> getEntitiesFromQuery(EntityPermission entityPermission, Map<EntityPermission, String>queryMap) 421 throws PersistenceDatabaseException { 422 PreparedStatement ps = session.prepareStatement(queryMap.get(entityPermission)); 423 424 return getEntitiesFromQuery(entityPermission, ps); 425 } 426 427 public java.util.List<SubscriptionDetail> getEntitiesFromQuery(EntityPermission entityPermission, ResultQuery<?> query) 428 throws PersistenceDatabaseException { 429 PreparedStatement ps = session.prepareStatement(query.getSQL()); 430 431 return getEntitiesFromQuery(entityPermission, ps, query.getBindValues().toArray()); 432 } 433 434 public java.util.List<SubscriptionDetail> getEntitiesFromQuery(EntityPermission entityPermission, PreparedStatement ps, final Object... params) 435 throws PersistenceDatabaseException { 436 java.util.List<SubscriptionDetail> _entities; 437 ResultSet _rs = null; 438 439 try { 440 if(params.length != 0) { 441 Session.setQueryParams(ps, params); 442 } 443 444 _rs = ps.executeQuery(); 445 _entities = getEntitiesFromResultSet(entityPermission, _rs); 446 _rs.close(); 447 } catch (SQLException se) { 448 throw new PersistenceDatabaseException(se); 449 } finally { 450 if(_rs != null) { 451 try { 452 _rs.close(); 453 } catch (SQLException se) { 454 // do nothing 455 } 456 } 457 } 458 459 return _entities; 460 } 461 462 public SubscriptionDetail getEntityFromQuery(EntityPermission entityPermission, Map<EntityPermission, String>queryMap, final Object... params) 463 throws PersistenceDatabaseException { 464 PreparedStatement ps = session.prepareStatement(queryMap.get(entityPermission)); 465 466 return getEntityFromQuery(entityPermission, ps, params); 467 } 468 469 public SubscriptionDetail getEntityFromQuery(EntityPermission entityPermission, Map<EntityPermission, String>queryMap) 470 throws PersistenceDatabaseException { 471 PreparedStatement ps = session.prepareStatement(queryMap.get(entityPermission)); 472 473 return getEntityFromQuery(entityPermission, ps); 474 } 475 476 public SubscriptionDetail getEntityFromQuery(EntityPermission entityPermission, ResultQuery<?> query) 477 throws PersistenceDatabaseException { 478 PreparedStatement ps = session.prepareStatement(query.getSQL()); 479 480 return getEntityFromQuery(entityPermission, ps, query.getBindValues().toArray()); 481 } 482 483 public SubscriptionDetail getEntityFromQuery(EntityPermission entityPermission, PreparedStatement ps, final Object... params) 484 throws PersistenceDatabaseException { 485 SubscriptionDetail _entity = null; 486 ResultSet _rs = null; 487 488 try { 489 if(params.length != 0) { 490 Session.setQueryParams(ps, params); 491 } 492 493 _rs = ps.executeQuery(); 494 if(_rs.next()) { 495 _entity = getEntityFromResultSet(entityPermission, _rs); 496 } 497 _rs.close(); 498 } catch (SQLException se) { 499 throw new PersistenceDatabaseException(se); 500 } finally { 501 if(_rs != null) { 502 try { 503 _rs.close(); 504 } catch (SQLException se) { 505 // do nothing 506 } 507 } 508 } 509 510 return _entity; 511 } 512 513 public java.util.List<SubscriptionDetail> getEntitiesFromResultSet(EntityPermission entityPermission, ResultSet rs) 514 throws PersistenceDatabaseException { 515 java.util.List<SubscriptionDetail> _result = new ArrayList<>(); 516 517 try { 518 while(rs.next()) { 519 _result.add(getEntityFromResultSet(entityPermission, rs)); 520 } 521 } catch (SQLException se) { 522 throw new PersistenceDatabaseException(se); 523 } 524 525 return _result; 526 } 527 528 public SubscriptionDetail getEntityFromResultSet(EntityPermission entityPermission, ResultSet rs) 529 throws PersistenceDatabaseException { 530 SubscriptionDetail _entity; 531 532 try { 533 Long subscrdt_subscriptiondetailid = rs.getLong(SUBSCRDT_SUBSCRIPTIONDETAILID); 534 SubscriptionDetailPK _pk = new SubscriptionDetailPK(subscrdt_subscriptiondetailid); 535 536 // See if we already have the entity in the session cache 537 _entity = (SubscriptionDetail)session.getEntity(_pk); 538 if(_entity != null) { 539 // If the requested permission is READ_WRITE, and the cached permission is 540 // READ_ONLY, then pretend that the cached object wasn't found, and create 541 // a new entity that is READ_WRITE. 542 if(entityPermission.equals(EntityPermission.READ_WRITE)) { 543 if(_entity.getEntityPermission().equals(EntityPermission.READ_ONLY)) 544 _entity = null; 545 } 546 } 547 boolean foundInSessionCache = _entity != null; 548 549 if(_entity == null && entityPermission.equals(EntityPermission.READ_ONLY)) { 550 _entity = getEntityFromCache(_pk); 551 } 552 553 if(_entity == null) { 554 Long subscrdt_subscr_subscriptionid = rs.getLong(SUBSCRDT_SUBSCR_SUBSCRIPTIONID); 555 if(rs.wasNull()) 556 subscrdt_subscr_subscriptionid = null; 557 558 String subscrdt_subscriptionname = rs.getString(SUBSCRDT_SUBSCRIPTIONNAME); 559 if(rs.wasNull()) 560 subscrdt_subscriptionname = null; 561 562 Long subscrdt_subscrtyp_subscriptiontypeid = rs.getLong(SUBSCRDT_SUBSCRTYP_SUBSCRIPTIONTYPEID); 563 if(rs.wasNull()) 564 subscrdt_subscrtyp_subscriptiontypeid = null; 565 566 Long subscrdt_par_partyid = rs.getLong(SUBSCRDT_PAR_PARTYID); 567 if(rs.wasNull()) 568 subscrdt_par_partyid = null; 569 570 Long subscrdt_starttime = rs.getLong(SUBSCRDT_STARTTIME); 571 if(rs.wasNull()) 572 subscrdt_starttime = null; 573 574 Long subscrdt_endtime = rs.getLong(SUBSCRDT_ENDTIME); 575 if(rs.wasNull()) 576 subscrdt_endtime = null; 577 578 Long subscrdt_fromtime = rs.getLong(SUBSCRDT_FROMTIME); 579 if(rs.wasNull()) 580 subscrdt_fromtime = null; 581 582 Long subscrdt_thrutime = rs.getLong(SUBSCRDT_THRUTIME); 583 if(rs.wasNull()) 584 subscrdt_thrutime = null; 585 586 SubscriptionDetailValue _value = new SubscriptionDetailValue(_pk, subscrdt_subscr_subscriptionid == null? null: new SubscriptionPK(subscrdt_subscr_subscriptionid), subscrdt_subscriptionname, subscrdt_subscrtyp_subscriptiontypeid == null? null: new SubscriptionTypePK(subscrdt_subscrtyp_subscriptiontypeid), subscrdt_par_partyid == null? null: new PartyPK(subscrdt_par_partyid), subscrdt_starttime, subscrdt_endtime, subscrdt_fromtime, subscrdt_thrutime); 587 _entity = new SubscriptionDetail(_value, entityPermission); 588 } 589 590 if(!foundInSessionCache) { 591 if(entityPermission.equals(EntityPermission.READ_ONLY)) { 592 session.putReadOnlyEntity(_pk, _entity); 593 session.getValueCache().put(_entity.getSubscriptionDetailValue()); 594 } else { 595 session.putReadWriteEntity(_pk, _entity); 596 } 597 } 598 } catch (SQLException se) { 599 throw new PersistenceDatabaseException(se); 600 } 601 602 return _entity; 603 } 604 605 public SubscriptionDetail create(Subscription subscription, String subscriptionName, SubscriptionType subscriptionType, Party party, Long startTime, Long endTime, Long fromTime, Long thruTime) 606 throws PersistenceDatabaseException, PersistenceNotNullException { 607 return create(subscription == null ? null : subscription.getPrimaryKey(), subscriptionName, subscriptionType == null ? null : subscriptionType.getPrimaryKey(), party == null ? null : party.getPrimaryKey(), startTime, endTime, fromTime, thruTime); 608 } 609 610 private void bindForCreate(PreparedStatement _ps, SubscriptionDetailValue _value) 611 throws SQLException { 612 _ps.setLong(1, _value.getEntityId()); 613 614 SubscriptionPK subscrdt_subscr_subscriptionid = _value.getSubscriptionPK(); 615 if(subscrdt_subscr_subscriptionid == null) 616 _ps.setNull(2, Types.BIGINT); 617 else 618 _ps.setLong(2, subscrdt_subscr_subscriptionid.getEntityId()); 619 620 String subscrdt_subscriptionname = _value.getSubscriptionName(); 621 if(subscrdt_subscriptionname == null) 622 _ps.setNull(3, Types.VARCHAR); 623 else 624 _ps.setString(3, subscrdt_subscriptionname); 625 626 SubscriptionTypePK subscrdt_subscrtyp_subscriptiontypeid = _value.getSubscriptionTypePK(); 627 if(subscrdt_subscrtyp_subscriptiontypeid == null) 628 _ps.setNull(4, Types.BIGINT); 629 else 630 _ps.setLong(4, subscrdt_subscrtyp_subscriptiontypeid.getEntityId()); 631 632 PartyPK subscrdt_par_partyid = _value.getPartyPK(); 633 if(subscrdt_par_partyid == null) 634 _ps.setNull(5, Types.BIGINT); 635 else 636 _ps.setLong(5, subscrdt_par_partyid.getEntityId()); 637 638 Long subscrdt_starttime = _value.getStartTime(); 639 if(subscrdt_starttime == null) 640 _ps.setNull(6, Types.BIGINT); 641 else 642 _ps.setLong(6, subscrdt_starttime); 643 644 Long subscrdt_endtime = _value.getEndTime(); 645 if(subscrdt_endtime == null) 646 _ps.setNull(7, Types.BIGINT); 647 else 648 _ps.setLong(7, subscrdt_endtime); 649 650 Long subscrdt_fromtime = _value.getFromTime(); 651 if(subscrdt_fromtime == null) 652 _ps.setNull(8, Types.BIGINT); 653 else 654 _ps.setLong(8, subscrdt_fromtime); 655 656 Long subscrdt_thrutime = _value.getThruTime(); 657 if(subscrdt_thrutime == null) 658 _ps.setNull(9, Types.BIGINT); 659 else 660 _ps.setLong(9, subscrdt_thrutime); 661 662 } 663 664 public SubscriptionDetail create(SubscriptionPK subscriptionPK, String subscriptionName, SubscriptionTypePK subscriptionTypePK, PartyPK partyPK, Long startTime, Long endTime, Long fromTime, Long thruTime) 665 throws PersistenceDatabaseException, PersistenceNotNullException { 666 SubscriptionDetailPK _pk = getNextPK(); 667 SubscriptionDetailValue _value = new SubscriptionDetailValue(_pk, subscriptionPK, subscriptionName, subscriptionTypePK, partyPK, startTime, endTime, fromTime, thruTime); 668 669 PreparedStatement _ps = session.prepareStatement(SQL_INSERT); 670 671 try { 672 bindForCreate(_ps, _value); 673 674 if(PersistenceDebugFlags.CheckEntityInsertRowCount) { 675 int _count = _ps.executeUpdate(); 676 677 if(_count != 1) { 678 throw new PersistenceDatabaseUpdateException("insert failed, _count = " + _count); 679 } 680 } else { 681 _ps.executeUpdate(); 682 } 683 684 session.getValueCache().put(_value); 685 } catch (SQLException se) { 686 throw new PersistenceDatabaseException(se); 687 } 688 689 SubscriptionDetail _entity = new SubscriptionDetail(_value, EntityPermission.READ_ONLY); 690 session.putReadOnlyEntity(_pk, _entity); 691 692 return _entity; 693 } 694 695 public void create(Collection<SubscriptionDetailValue> _values) 696 throws PersistenceDatabaseException, PersistenceNotNullException { 697 int _size = _values.size(); 698 699 if(_size > 0) { 700 PreparedStatement _ps = session.prepareStatement(SQL_INSERT); 701 List<SubscriptionDetailValue> _cacheValues = new ArrayList<>(_size); 702 703 try { 704 for(SubscriptionDetailValue _value : _values) { 705 _value.setEntityId(entityIdGenerator.getNextEntityId()); 706 bindForCreate(_ps, _value); 707 708 _ps.addBatch(); 709 710 _cacheValues.add(_value); 711 } 712 713 if(PersistenceDebugFlags.CheckEntityInsertRowCount) { 714 int[] _counts = _ps.executeBatch(); 715 716 for(int _countOffset = 0 ; _countOffset < _size ; _countOffset++) { 717 if(_counts[_countOffset] != 1 && _counts[_countOffset] != PreparedStatement.SUCCESS_NO_INFO) { 718 throw new PersistenceDatabaseUpdateException("batch insert failed, _counts[" + _countOffset + "] = " + _counts[_countOffset]); 719 } 720 } 721 } else { 722 _ps.executeBatch(); 723 } 724 725 _ps.clearBatch(); 726 } catch (SQLException se) { 727 throw new PersistenceDatabaseException(se); 728 } 729 730 _cacheValues.forEach((_cacheValue) -> { 731 SubscriptionDetail _cacheEntity = new SubscriptionDetail(_cacheValue, EntityPermission.READ_ONLY); 732 733 session.putReadOnlyEntity(_cacheValue.getPrimaryKey(), _cacheEntity); 734 }); 735 } 736 } 737 738 private boolean bindForStore(PreparedStatement _ps, SubscriptionDetailValue _value) 739 throws SQLException { 740 boolean _hasBeenModified = _value.hasBeenModified(); 741 742 if(_hasBeenModified) { 743 SubscriptionPK subscrdt_subscr_subscriptionid = _value.getSubscriptionPK(); 744 if(subscrdt_subscr_subscriptionid == null) 745 _ps.setNull(1, Types.BIGINT); 746 else 747 _ps.setLong(1, subscrdt_subscr_subscriptionid.getEntityId()); 748 749 String subscrdt_subscriptionname = _value.getSubscriptionName(); 750 if(subscrdt_subscriptionname == null) 751 _ps.setNull(2, Types.VARCHAR); 752 else 753 _ps.setString(2, subscrdt_subscriptionname); 754 755 SubscriptionTypePK subscrdt_subscrtyp_subscriptiontypeid = _value.getSubscriptionTypePK(); 756 if(subscrdt_subscrtyp_subscriptiontypeid == null) 757 _ps.setNull(3, Types.BIGINT); 758 else 759 _ps.setLong(3, subscrdt_subscrtyp_subscriptiontypeid.getEntityId()); 760 761 PartyPK subscrdt_par_partyid = _value.getPartyPK(); 762 if(subscrdt_par_partyid == null) 763 _ps.setNull(4, Types.BIGINT); 764 else 765 _ps.setLong(4, subscrdt_par_partyid.getEntityId()); 766 767 Long subscrdt_starttime = _value.getStartTime(); 768 if(subscrdt_starttime == null) 769 _ps.setNull(5, Types.BIGINT); 770 else 771 _ps.setLong(5, subscrdt_starttime); 772 773 Long subscrdt_endtime = _value.getEndTime(); 774 if(subscrdt_endtime == null) 775 _ps.setNull(6, Types.BIGINT); 776 else 777 _ps.setLong(6, subscrdt_endtime); 778 779 Long subscrdt_fromtime = _value.getFromTime(); 780 if(subscrdt_fromtime == null) 781 _ps.setNull(7, Types.BIGINT); 782 else 783 _ps.setLong(7, subscrdt_fromtime); 784 785 Long subscrdt_thrutime = _value.getThruTime(); 786 if(subscrdt_thrutime == null) 787 _ps.setNull(8, Types.BIGINT); 788 else 789 _ps.setLong(8, subscrdt_thrutime); 790 791 _ps.setLong(9, _value.getPrimaryKey().getEntityId()); 792 793 _value.clearHasBeenModified(); 794 } 795 796 return _hasBeenModified; 797 } 798 799 @Override 800 public void store(SubscriptionDetail entity) 801 throws PersistenceDatabaseException { 802 PreparedStatement _ps = session.prepareStatement(SQL_UPDATE); 803 804 try { 805 SubscriptionDetailValue _value = entity.getSubscriptionDetailValue(); 806 807 if(bindForStore(_ps, _value)) { 808 if(PersistenceDebugFlags.CheckEntityUpdateRowCount) { 809 int _count = _ps.executeUpdate(); 810 811 if(_count != 1) { 812 throw new PersistenceDatabaseUpdateException("update failed, _count = " + _count); 813 } 814 } else { 815 _ps.executeUpdate(); 816 } 817 818 session.getValueCache().put(_value); 819 } 820 } catch (SQLException se) { 821 throw new PersistenceDatabaseException(se); 822 } 823 } 824 825 @Override 826 public void store(Collection<SubscriptionDetail> entities) 827 throws PersistenceDatabaseException { 828 if(entities.size() > 0) { 829 PreparedStatement _ps = session.prepareStatement(SQL_UPDATE); 830 int _modifiedEntities = 0; 831 832 try { 833 for(SubscriptionDetail entity : entities) { 834 if(bindForStore(_ps, entity.getSubscriptionDetailValue())) { 835 _ps.addBatch(); 836 _modifiedEntities++; 837 } 838 } 839 840 if(_modifiedEntities != 0) { 841 if(PersistenceDebugFlags.CheckEntityUpdateRowCount) { 842 int[] _counts = _ps.executeBatch(); 843 844 for(int _countOffset = 0 ; _countOffset < _modifiedEntities ; _countOffset++) { 845 if(_counts[_countOffset] != 1 && _counts[_countOffset] != PreparedStatement.SUCCESS_NO_INFO) { 846 throw new PersistenceDatabaseUpdateException("batch update failed, _counts[" + _countOffset + "] = " + _counts[_countOffset]); 847 } 848 } 849 } else { 850 _ps.executeBatch(); 851 } 852 853 _ps.clearBatch(); 854 855 entities.forEach((entity) -> { 856 session.getValueCache().put(entity.getSubscriptionDetailValue()); 857 }); 858 } 859 } catch (SQLException se) { 860 throw new PersistenceDatabaseException(se); 861 } 862 } 863 } 864 865 @Override 866 public void remove(SubscriptionDetail entity) 867 throws PersistenceDatabaseException { 868 remove(entity.getPrimaryKey()); 869 } 870 871 @Override 872 public void remove(SubscriptionDetailPK pk) 873 throws PersistenceDatabaseException { 874 PreparedStatement _ps = session.prepareStatement(SQL_DELETE); 875 long _entityId = pk.getEntityId(); 876 877 try { 878 _ps.setLong(1, _entityId); 879 880 if(PersistenceDebugFlags.CheckEntityDeleteRowCount) { 881 int _count = _ps.executeUpdate(); 882 883 if(_count != 1) { 884 throw new PersistenceDatabaseUpdateException("remove failed, _count = " + _count); 885 } 886 } else { 887 _ps.executeUpdate(); 888 } 889 890 session.getValueCache().remove(pk); 891 } catch (SQLException se) { 892 throw new PersistenceDatabaseException(se); 893 } 894 895 session.removed(pk, false); 896 } 897 898 @Override 899 public void remove(Collection<SubscriptionDetailPK> pks) 900 throws PersistenceDatabaseException { 901 if(pks.size() > 0) { 902 PreparedStatement _ps = session.prepareStatement(SQL_DELETE); 903 int _modifiedEntities = 0; 904 905 try { 906 for(SubscriptionDetailPK pk : pks) { 907 long _entityId = pk.getEntityId(); 908 909 _ps.setLong(1, _entityId); 910 911 _ps.addBatch(); 912 _modifiedEntities++; 913 } 914 915 if(_modifiedEntities != 0) { 916 if(PersistenceDebugFlags.CheckEntityDeleteRowCount) { 917 int[] _counts = _ps.executeBatch(); 918 919 for(int _countOffset = 0 ; _countOffset < _modifiedEntities ; _countOffset++) { 920 if(_counts[_countOffset] != 1 && _counts[_countOffset] != PreparedStatement.SUCCESS_NO_INFO) { 921 throw new PersistenceDatabaseUpdateException("batch remove failed, _counts[" + _countOffset + "] = " + _counts[_countOffset]); 922 } 923 } 924 } else { 925 _ps.executeBatch(); 926 } 927 928 _ps.clearBatch(); 929 930 pks.forEach((pk) -> { 931 session.getValueCache().remove(pk); 932 }); 933 } 934 } catch (SQLException se) { 935 throw new PersistenceDatabaseException(se); 936 } 937 938 pks.forEach((pk) -> { 939 session.removed(pk, true); 940 }); 941 } 942 } 943 944 @Override 945 public boolean validPK(SubscriptionDetailPK pk) 946 throws PersistenceDatabaseException { 947 boolean valid = false; 948 PreparedStatement _ps = session.prepareStatement(SQL_VALID); 949 ResultSet _rs = null; 950 951 try { 952 _ps.setLong(1, pk.getEntityId()); 953 954 _rs = _ps.executeQuery(); 955 if(_rs.next()) { 956 long _count = _rs.getLong(1); 957 if(_rs.wasNull()) 958 _count = 0; 959 960 if(_count == 1) 961 valid = true; 962 } 963 } catch (SQLException se) { 964 throw new PersistenceDatabaseException(se); 965 } finally { 966 if(_rs != null) { 967 try { 968 _rs.close(); 969 } catch (SQLException se) { 970 // do nothing 971 } 972 } 973 } 974 975 return valid; 976 } 977 978}