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