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