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