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