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