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