forked from j256/ormlite-core
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathchangelog.txt
754 lines (654 loc) · 55.1 KB
/
changelog.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
5.2: X/YY/2019
* CORE: Fixed problem with null field assignment causing a NPE in the resulting message. Thanks to hrach.
5.1: 2/19/2019
* CORE: Added @DatabaseField(fullColumnDefinition) for fully describing a column as opposed to columnDefinition.
* CORE: Added synchronized keyword to BaseDaoImpl.createOrUpdate() and createIfNotExists().
* CORE: Added integer date support. Thanks to noordawod.
* CORE: Added support for CloseableIterator.moveAbsolute(...). Thanks to renaudcerrato.
* CORE: Fixed but with get table name not using TableInfo. Thanks to 0xabadea.
* CORE: Fixed handling of field capitalization which was screwing up Turkish fields. Thanks to folkyatina.
* CORE: Fixed handling of joined queries with orders and group by's. Thanks much to p91paul.
* CORE: Fixed bad bug with committing of inner transactions inappropriately. Thanks much to maroux.
* CORE: Normalized all of the up/down case usage to the DatabaseType so it can be overridden.
* JDBC: Fixed problem with UUID native type not using the correct persister. Thanks to Bo98.
* ANDROID: Added field sorting for more deterministic config file output. Thanks to jibidus.
5.0: 6/27/2016
* ALL: ORMLite has dropped support for Java 5. Java 6 is now required.
* ALL: Added boolean argument to DatabaseConnection.compileStatement(...) to fix a cache bug.
* ALL: Changed DatabaseResults.getObjectCache() to be getObjectCacheForRetrieve() and getObjectCacheForStore().
* CORE: Added JOIN-ing between tables _without_ a foreign-object relationship.
* CORE: Added TimeStampStringType to support Android timestamps.
* CORE: Added the ability to override the DataPersister as well as the FieldConverter.
* CORE: Added support for the @Table entity from javax.persistence annotations. Thanks to wener. Bug #174.
* CORE: Added used of java.io.Closeable to support CloseableIterator and other features for Java7 support. Thanks to livelazily.
* CORE: Added Dao.create(Collection) method for bulk creation. Thanks to Farrukh Najmi for the good idea.
* CORE: Added DataType.BOOLEAN_CHAR (to support '1' '0' or 't' 'f') and BOOLEAN_INTEGER. Thanks to stew.
* CORE: Added support for QueryBuilder.countOf("DISTINCT(field)"). Thanks to spacetime.
* CORE: Added support for Java 8 methods. Thanks to VincentFTS.
* CORE: Added support for Joda DateTime to be able to be a version field. Thanks much to outofrange.
* CORE: Added support for raw queries using the DatabaseResults in the mapper. Thanks much to nonameplum.
* CORE: Added support for the ENUM_TO_STRING type which persists Enum.toString() instead of name(). Thanks jiajia-li.
* CORE: Added support for BigInteger to be an ID and version field by saving as string. Thanks noordawod.
* CORE: Added support for BYTE_ARRAY and STRING_BYTE_ARRAY data type to be ids and have default values. Thanks noordawod.
* CORE: Added support for table aliasing. Thanks much to p91paul.
* CORE: Added table-name for many ConnectionSource methods to allow partitioning and other per-table operations.
* CORE: Added better support for per-database type object custom persisters. Thanks to rzorzorzo.
* CORE: Fixed (really) QueryBuilder.orderByRaw(...) and orderBy(...) mutually exclusivity. Thanks to Diederik. Bug #161.
* CORE: Fixed a bug when we select columns on an entity without an id field. Thanks to lder.
* CORE: Fixed a bug with building queries using selectRaw(...). Bug #166.
* CORE: Fixed the javax.persistence annotation processing and revamped it to use the annotations directly.
* CORE: Fixed bug with UpdateBuilder methods returning wrong type. Thanks to Joseph Jones. Bug #180.
* CORE: Fixed bug with the raw results that they are not obeying the AS SQL. Thanks to nonameplum. Bug #183.
* CORE: Fixed bug with ISNULL and ISNOTNULL which weren't working with serializable. Thanks to andrew8er. Bug #185.
* CORE: Fixed bug with dao.update() not setting the dao on BaseDaoEnabled instances. Thanks to Carlos Fonseca. Bug #177.
* CORE: Fixed bug where dao.deleteById(...) was not being properly notified. Thanks to Daniel Jette. Bug #190.
* CORE: Fixed bug where useGetSet did not understand isXxx() for boolean fields. Thanks to HeDYn. Bug #187.
* CORE: Fixed finding of get/set/is methods if not in English locale. Thanks to Christian Ruppert. Bug #191.
* CORE: Fixed bug with Doa.createOrUpdate(...) and custom id types. Thanks much to lstrzelecki. Bug #193.
* CORE: Fixed some problems with default-value parsing and handing with some complex types.
* CORE: Fixed synchronization problems with single connection ConnectionSource and Dao.callBatchTasks(). Bug #195.
* CORE: Fixed bad bug where max-auto-refresh value enabled auto-refresh when programmatically configured. Bug #196.
* CORE: Fixed bug where unknown enum name was not working with anonymous enum types. Thanks to jahd2602. Bug #197.
* CORE: Fixed a bug where the logger did not handle an array of primitives correctly.
* CORE: Fixed problem with capitalization of entities in non-english locales. ENGLISH now the default.
* CORE: Fixed problems with using @DatabaseField(foreignColumnName). Thanks to Knight704.
* CORE: Fixed problem with storing partially formed objects in the cache because of select arguments. Thanks to pimduin.
* CORE: Fixed a bug in the DatabaseFieldConfig constructor where it was ignoring the DataType param. Thanks to magicgoose.
* CORE: Removed deprecated methods: Dao.setAutoCommit(boolean), isAutoCommit()
* CORE: Removed deprecated methods: QueryBuilder.clear(), limit(int), offset(int), use long versions of methods
* CORE: Removed deprecated methods: ForeignCollectionField.maxEagerForeignCollectionLevel(), foreignColumnName()
* CORE: Removed deprecated methods: DatabaseFieldConfig.setMaxEagerForeignCollectionLevel()
* CORE: Removed deprecated methods: DatabaseFieldConfig.setForeignCollectionMaxEagerForeignCollectionLevel()
* CORE: Removed deprecated methods: DatabaseFieldConfig.setForeignCollectionOrderColumn()
* CORE: Removed deprecated methods: DatabaseFieldConfig.setForeignCollectionForeignColumnName()
* JDBC: Added support for UUID database fields for Postgres and MSSQL. Use dataType = UUID_NATIVE. Thanks to tsharp.
* JDBC: Added support for a JdbcConnectionSource that uses an existing database connection. Thanks to natinusala.
* JDBC: Fixed (possibly) some problems with the Oracle type with better boolean support. Thanks to 51mon.
* JDBC: Removed deprecated method: DataSourceConnectionSource.setUsesTransactions(boolean).
* JDBC: Removed deprecated method: JdbcPooledConnectionSource.setUsesTransactions(boolean).
* ANDROID: Added initial take on Loader base classes from EgorAnd for newer Android versions. Thanks much!!
* ANDROID: Added better support for Slf4jLoggingLog from JDBC to CORE so Android users can use it. Thanks to tonyxiao.
* ANDROID: Fixed the string processing when persisting java.sql.Timestamp and java.sql.Date classes. Bug #163.
* ANDROID: Fixed problem with the maxForeignAutoRefreshLevel config setting. Thanks to Eric Fung et al. Bug #194.
* ANDROID: Fixed possible problem with queryForFirst() and improper LIMIT implementation.
* ANDROID: Removed deprecated methods: OpenHelperManager.release() and AndroidDatabaseResults(Cursor, boolean, ObjectCache).
4.48: 12/16/2013
* CORE: Added support for tracking direct database connection activity with DatabaseConnectionProxy.
* CORE: Fixed problem when inserting no columns to Sqlite (Android), other DBs. Thanks to Michael Weimann. Bug #155.
* CORE: Added support for canceling of long running prepared queries. Thanks to Nathan Jones.
* CORE: More aggressively remove of some ThreadLocal data. Thanks to Pavel Arnošt.
* CORE: Fixed problem with queries similar to and().not().like(...). Thanks to ????. Bug #159.
* CORE: Added better use of object cache when hydrating foreign fields. Thanks to Anthony Whitlock. Feature #38.
* ANDROID: Added initial API compatibility code for handling multiple API versions. Needed to support canceling.
4.47: 9/8/2013
* CORE: Added support to the QueryBuilder to support joinOr(...) and innerJoinOr(). Default is AND.
* CORE: Added support to Dao for another type of queryRaw(...) method that maps results from Object[].
* CORE: Renamed QueryBuilder and Where clear() to be reset() and deprecated the clear() methods.
* CORE: Fixed problem where defaultValue = "" was being ignored. Thanks to ManosProm. Bug #152.
* CORE: Fixed ForeignCollection.addAll() which was not doing the same thing as add(). Thanks to Igromanru. Bug #153.
4.46: 7/29/2013
* CORE: Added support for raw selects in inner queries. More powerful and flexible.
* CORE: Added support for @DatabaseField(readOnly = true) for query only fields. Thanks to Casey.
* CORE: Added support for using java.sql.Timestamp fields with @DatabaseField(version = true).
* CORE: Added support for QueryBuilder.prepareStatementInfo() to return statement and args. Thanks to SO user.
* CORE: Fixed problems with SQLExceptions thrown during transaction rollbacks. Thanks to Miroslav Nadhajský. Bug #148.
* CORE: Fixed a stupid bug in the handling of ColumnArgs and Strings (plus others). Thanks to jon. Bug #147.
* CORE: Fixed eager-collection clear() which was broken. Thanks to igromanru. Bug #149.
* CORE: Fixed eager-collection iterator.remove() which removed every other. Thanks to igromanru. Bug #150.
* CORE: Added support for the javax.persistance @Basic annotation. Thanks to Roland Oldenburg. Bug #151.
* JDBC: Made some portions of JdbcPooledConnectionSource protected for subclasses. Thanks to Miroslav Nadhajsky.
* ANDROID: Fixed possible problem with not closing Cursor in queryForFirst(). Thanks to Guillermo Campelo. Bug #143.
4.45: 3/18/2013
* CORE: Fixed bad bug introduced in 4.43 that broke date-string backwards compatibility. Thanks to Howard Liberty.
* ANDROID: Added better exception handling around inner classes. Thanks to Jonathan Caryl.
* ANDROID: Fixed bad problem with recursion and OrmLiteConfigUtil. Thanks to Jonathan Caryl.
4.44: 3/13/2013
* CORE: Improved the speed of the version checking under Android. Thanks much to Nick Campion.
* ALL: Moved to github.com and to use git for all packages.
4.43: 2/5/2013 (svn r2719)
* CORE: WARNING: changed format of date-string which broke backwards compatibility. Use version 4.45+.
* CORE: Added QueryBuilder.countOf() and queryRaw() methods as shortcuts to their DAO equivalents.
* CORE: Added Where.queryForFirst(), queryRaw(), queryRawFirst(), countOf() methods as shortcut to QueryBuilder.
* CORE: Added the ColumnArg feature to compare two columns using QueryBuilder in simple queries and joins.
* CORE: Fixed a problem with GROUP BY, ORDER BY, and HAVING order. Bug #134.
* CORE: Fixed possible problem with field-type comparison in certain situations. Thanks to shikajiro. Bug #136.
* CORE: Added ? arguments to QueryBuilder.orderByRaw(...) method. Thanks a bunch to Nathan Jones. Feature #39.
* CORE: Added support for multiple JOIN statements. Thanks to Ramps. Feature #28.
* CORE: Added ability to select log-type using "com.j256.ormlite.logger.type" system property. See LoggerFactory.
* CORE: Creating an empty foreign collection now mirrors the collection type. "Fixes" bug #124.
* CORE: Made the RuntimeExceptionDao implement ClosableIterarble. Feature #34.
* CORE: Added Dao.assignEmptyForeignCollection() method to replace the getEmptyForeignCollection(). Feature #31.
* JDBC: Improved the log class detection and added support for Slf4j nad Log4j2. Feature #27.
* ANDROID: Added protections around missing classes when building class config. Thanks to Bart. Bug #133.
* ANDROID: Fixed unclosed Cursor in AndroidDatabaseConnection.isTableExists(). Thanks to Andreas. Bug #137.
* ANDROID: Added handling of inner classes that have annotations. Thanks to Ваcилий Казьмин. Feature #35.
4.42: 9/27/2012 (svn r2653)
* CORE: Added basic INNER and LEFT JOIN capabilities for queries only. Finally. Work in progress.
* CORE: Added ObjectFactory support on the DAO to better support Guice and other wiring. Thanks to glenviewjeff.
* CORE: Fixed a bug in comparing superclasses of the field with the field. Thanks to glenviewjeff. Bug #3538777.
* CORE: Fixed problems with java.sql.Date and Timestmp persisters. Thanks to Mohammad Moghimi. Bug #3534395.
* CORE: Added queryRawValue() method to the DAO for getting a single aggregate result.
* CORE: Added last(), moveAbsolute(), and close() methods to DatabaseResults. Thanks to Andrey.
* CORE: Added a Dao.getConnectionSource() method to assign with the RuntimeExceptionDao. Thanks to glenviewjeff.
* CORE: Added closeQuietly() methods for all close() methods in a number of classes/interfaces.
* CORE: Added Dao.executeRawNoArgs() method for executing raw statements with no arguments. Necessary for JDBC fix.
* CORE: Added the ability to order your foreign collections ASC or DESC. Thanks to Jaykob. Feature #3571690.
* ANDROID: Added support for auto-commit under Android using transactions. Thanks to Chad Schultz.
* ANDROID: Added getCount() and getPosition() cursor methods AndroidDatabaseResults. Thanks to Andrey.
* JDBC: Fixed some problems with the OracleDatabaseType. Work in progress. Thanks much to Stew.
* JDBC: Added OTHER to the SqlType enum for custom persisters. Thanks to Mark Rogers.
* JDBC: Added a DatabaseConnection.executeStatement() method which uses Statement.execute() for SQL. Thanks to Stew.
* JDBC: Fixed a problem with Oracle where we were asking for column info too early. Thanks to Stew. Bug #3570129.
4.41: 6/6/2012 (svn r2575)
* CORE: Added java.sql.Date and java.sql.Timestmp data persister types. java.util.Date is still recommended.
* CORE: Added version checking which logs errors if core, jdbc, and android versions do not match. Thanks to nybblr.
* CORE: Added a Dao.getRawRowMapper() for mapping result string to an object.
* CORE: Added some handling of ForeignCollection with the javax.persistence.* annotations.
* CORE: Fixed problem with maxForeignAutoRefreshLevel that made it ~worthless. Thanks to Andrea Sprega. Bug #3530801.
* ANDROID: Fixed the updating of serializable and other byte[] fields. Thanks to Yossi Wasserman. Bug #3527685.
4.40: 4/16/2012 (svn r2516)
* CORE: Fixed a couple of missing field configuration entries. Thanks to Jeremy Stone. Bug #3518474.
* CORE: Fixed a problem that was causing FieldType to always use reflection. Thanks to Jeremy Stone. Bug #3518472.
* ANDROID: Big performance bug fix when creating DAOs. Foreign fields always used reflection instead of table configs.
4.39: 4/13/2012 (svn r2485)
* CORE: Deprecated @DatabaseField foreignColumnName, renamed to foreignFieldName. Thanks to Candlejack. Bug #3507094.
* CORE: Changed dao.callBatchTasks() from throwing Exception to SQLException. Thanks to JC.
* CORE: Improved createOrUpdate() to use idExists() instead of expensive method. Thanks to Chris Nevill. Bug #3514164.
* CORE: Fixed tough bug with table configs of self referencing classes. Thanks to Slava Tysianchuk. Bug #3517094.
* CORE: Added support for start and endThreadConnection() and added dao.commit() and rollBack(). Thanks to AlexPal.
* JDBC: Added support for preparedStatement.setQueryTimeout(millis). Thanks to mjomble. Feature #3502803.
* JDBC: Fixed bug with pooled connection source and connections with autoCommit off. Thanks to AlexPal. Bug #3517098.
* ANDROID: Finally fixed the number of rows changed for insert/delete/update calls using SQLite CHANGES() pragma.
* ANDROID: Decided to _not_ fix the columnName case sensitivity issue introduced in 4.37. Thanks to Roman Zimmer.
* ANDROID: Fixed bad bug that was prematurely clearing DAO configs. Thanks to Slava Tysianchuk. Bug #3516920.
4.38: 3/23/2012 (svn r2426)
* ANDROID: Fixed bad ObjectCache bug deep in Android shutdown/startup logic. Thanks to Filipe Leandro. Bug #3510266.
4.37: 3/21/2012 (svn r2406)
* CORE: Fixed blocking bug where object cache exceptions would be thrown. Thanks to Filipe Leandro. Bug #3509853.
* CORE: Fixed bug where LocalLog was overwriting log data written to local file. Thanks to mjomble. Bug #3437823.
* ANDROID: Fixed a bug with Android API lookup of column names with periods. Thanks to Sebastian Roth. Bug #3509386.
4.36: 3/19/2012 (svn r2389)
* CORE: Added support for @DatabaseField(foreignColumnName="name") to map foreign to non-ID. Thanks to Mathias Lin.
* CORE: Added update() and refresh() to ForeignCollection which call through to the inner Dao.
* CORE: Improved the custom data persister code so it can extend one of the types. Added docs and example.
* CORE: Added a Joda DateTime persister which uses reflection.
* CORE: Increased synchronization around some code to be proactive about constructor reordering race-conditions.
* CORE: Added updateAll(), refreshAll(), refreshCollection() for eager foreign collections. Thanks to Chris Nevill.
* CORE: Added logging of exceptions to the RuntimeExceptionDao. Thanks to Kaan.
* CORE: Revamped the Logger stuff to remove new Object[] that was happening on each Logger call. Bug #3509015.
* JDBC: Fixed a bug in where transactions aren't committed with auto-commit off. Thanks to Tony. Bug #3508746.
4.35: 2/22/2012 (svn r2337)
* CORE: Bug where not all queried objects were added to cache. Thanks to Filipe Leandro. Bug #3491418.
4.34: 2/22/2012 (svn r2318)
* CORE: Fixed restriction on Long auto-incremented SQLite ids. Thanks to John Kristian. Bug #3474479.
* CORE: Added support for sql NOT IN clause to where(). Thanks to Marvin Jomble. Feature #3474550.
* CORE: Added support for sql HAVING clause to QueryBuilder. Thanks to Stephen Couchman. Feature #3470923.
* CORE: Added updateBuilder.update() and deleteBuilder.delete(). Thanks to Marvin Jomble. Feature #3475613.
* CORE: Fixed problem with ForeignCollections when inserting into cache. Thanks to Nick Campion. Bug #3486577.
* CORE: Revamped the CloseableIterator to support first, previous, ... moving methods to support more than next.
* CORE: Added result-flags to some of the iterator methods to allow forwards/backwards in JDBC.
* CORE: Refactored the FieldConverter and BaseDataType stuff a bit to remove some duplicate code.
* CORE: Added convenience QueryBuilder.queryForFirst() and queryRawFirst() methods.
* CORE: Added setArgumentHolderValue() to the PreparedStmt so we can set an argument on prepared queries directly.
* CORE: Removed the @DatabaseFieldSimple and friends annotations that were deprecated in 4.30.
* ANDROID: Significantly simplified, improved the internal DAO caching. Thanks to Ben Mosher. Bug #3487674.
* ANDROID: Fixed missing exception handling in AndroidConnectionSource. Thanks to Roger Keays. Bug #3474501.
* ANDROID: Added isTableExists() support to Dao/AndroidDatabaseConnection. Thanks to Patrick. Feature #3475173.
4.33: 1/12/2012 (svn r2249)
* CORE: Fixed a find-bugs result from the eager collection equals method that would always return false.
* CORE: Fixed problem with foreign collections and multiple foreign fields. Thanks to André. Bug #3473078.
* JDBC: Fixed a problem with SqlServer or JTDS driver returning -1 for some statements. Bug 3463333.
4.32: 1/11/2012 (svn r2229)
* CORE: Fixed bad bug where foreign objects cannot have primitive ids. Thanks to Vladimir. Bug #3456339.
* CORE: Fixed bug where foreign collections couldn't handle two foreign fields. Thanks to André. Bug #3471320.
* CORE: Added support for a BIG_DECIMAL_NUMERIC to support existing NUMERIC database fields.
* JDBC: Bug where SQLite class warning is spit out for other databases. Thanks to Kaan. Bug #3472476.
* JDBC: Fixed problem with MySQL's creating of index if not exists. Bug #3472782.
4.31: 12/8/2011 (svn r2198)
* CORE: Added missing IF NOT EXISTS handling to index creation. Thanks to mjomble. Bug #3437795.
* CORE: Fixed problem with hasNext() always moving cursor forward. Thanks to Tom Tantisalidchai. Bug #3449877.
* CORE: Fixed bad bug which stopped field being updated with null. Thanks to Javier Hinmel. Bug #3454723.
* ANDROID: Added better SQL logging to Android connections.
* JDBC: Added better SQL logging to JDBC connections.
4.30: 11/10/2011 (svn r2156)
* CORE: Added ability to specify ForeignCollection columns in selectColumns(). Thanks to Timo. Bug #3428751.
* CORE: Added two new Dao methods: mapSelectStarRow and getSelectStarRowMapper for easier mapping of results.
* CORE: Deprecated the @DatabaseFieldSimple and other smaller annotations that were causing confusion. Sorry.
* CORE: Fixed config loader support for foreignAutoCreate and version fields. Thanks to Chase. Bug #3433599.
* CORE: Fixed foreignAutoCreate bug where parent object didn't get foreign id. Thanks to Chase. Bug #3434550.
* CORE: Added TableInfo.hasColumnName() method. Thanks to JC. Feature #3435754.
* CORE: Added Dao.idExists(ID id) to see if row with id exists. Thanks to Craig Andrews. Feature #3300688.
* CORE: Moved limit() and offset() to take long parameters to be more consistent. Possible deprecation warnings.
* ANDROID: Added some reflection fu to make reading Annotations ~20 times faster. Thanks a ton to Josh Guilfoyle.
* ANDROID: Fixed problems with Dao.countOf() method. Thanks to Pedro Velasco. Bug #3434508.
* JDBC: Added support for better escaping of "schema"."table" in Postgres. Thanks to Johny Jugianto.
4.29: 10/25/2011 (svn r2101)
* ANDROID: Fixed a casting bug in OrmLiteSqliteOpenHelper from 4.28. Thanks to Craig Andrews. Bug #3428429.
4.28: 10/23/2011 (svn r2074)
* CORE: Added Dao.countOf(PreparedQuery) and QueryBuilder.setCountOf(true). Thanks to Pedro Velasco.
* CORE: Added QueryBuilder.rawColumns(String... columns) to better support aggregates. Thanks to Pedro Velasco.
* CORE: Added support for @DatabaseField(version=true) and row version field for numbers and Date's. Cool.
* CORE: Fixed a field that was missing transient, making LazyForeignCollection not serializable. Bug #3426884.
* ANDROID: Added OrmLiteSqliteOpenHelper.getRuntimeExceptionDao(). Thanks to João Bosco. Feature #3425272.
* JDBC: Fixed a spin loop in the JdbcPooledConnectionSource. Thanks to Ali Aksakarya. Bug #3426903.
4.27: 10/11/2011 (svn r2019)
* CORE: Added @DatabaseField(foreignAutoCreate=true) for auto-creating foreign fields with blank IDs using the internal DAO.
* CORE: Added support for storing BigDecimal and BigInteger fields. Thanks to Pedro Velasco. Feature #3414432.
* CORE: Added support for the javax.persistence.Enumerated annotation for setting @Enumerated(ORDINAL) or @Enumerated(STRING).
* CORE: Fixed problem with the columnDefinition field handling in @DatabaseFieldOther. Thanks to Flo. Bug #3419779.
* CORE: Removed the restriction on classes with just the ID. Update now just returns 0.
* ANDROID: Better handling of errors during java auto-detection around the new table configuration code. Thanks to Ming Lin.
4.26: 9/26/2011 (svn r1978)
* CORE: Added the first take on a object cache. Thanks to the dev list for suggestions.
* CORE: Improved the javax.persistence annotation handling to support @JoinColumn(name="xxx"). Thanks to Andrew Sleeman.
* CORE: Added a RuntimeExceptionDao for wrapping Dao operations in RuntimeExceptions. Thanks to the Android list.
* CORE: Added a Dao.deleteById() method for removing an instance if you just have the id.
* CORE: Added @DatabaseField(columnDefiniton = "...") for hand-defining the field SQL.
* CORE: Removed the deprecated RawResults class that was replaced in 4.10.
* CORE: Fixed problem with self-generated id fields not being marked as primary. Thanks to Craig Andrews. Bug #3406600.
* CORE: Fixed a problem where default was canBeNull=false with javax persistence macros. Thanks to A. Bug #3410640.
* CORE: Removed the maxForeignLevel() field from @DatabaseField which was deprecated in 4.22.
* CORE: Added table and field configuration file reading and writing.
* CORE: Added implements Serializable to the foreign collection objects. Thanks to Mariák Kálmán. Bug #3411227.
* CORE: Added support for the MariaDB type. Thanks to kratorius.
* ANDROID: Added field configuration utility to avoid Dao creation performance problems with annotations. Thanks to Ian Dees.
* ANDROID: Added @DatabaseFieldSimple and other smaller annotations for speeding up Android configuration.
* ANDROID: Added SQLiteDatabase constructor to AndroidConnectionSource for external SQLite databases. Thanks to Michael.
* ANDROID: Removed the SqliteOpenHelperFactory class that was deprecated in 4.20.
* ANDROID: Fixed issue that was not properly supporting CREATE IF NOT EXISTS. Thanks to birbird. Bug #3412135.
* ANDROID: Added RuntimeExceptionDao for shielding applications from _some_ of the SQLException handling.
4.25: 8/22/2011 (svn r1897)
* CORE: Fixed problem with id=true with UUID fields not working. Thanks to Evan Grim. Bug #3392691.
* CORE: Exposed the fields in CreateOrUpdateStatus that were package protected. Thanks to steffen. Bug #3383768.
* CORE: Added to FieldType getter for foreign field type. Thanks to Jean-Maxime Pelletier. Feature #3386969.
* CORE: Added allowGeneratedIdInsert feature to allow optional generated-id fields. Thanks to Craig Andrews.
* CORE: Fixed problem with null ids an createOrUpdate. Thanks to João Bosco. Bug #3390169.
* CORE: Fixed race condition with field and constructor accessibility. Thanks to Jeroen Rakhorst. Bug #3381083.
* CORE: Added config file to the LocalLog so we can specify which classes get which log levels.
4.24: 7/18/2011 (svn r1840)
* CORE: Fixed problem with updating a field's value to null using UpdateBuilder. Thanks to Jeremy Mcjunkin. Bug #3359086.
* CORE: Fixed foreign collection bug where clear, remove, ... affected whole table. Thanks to Patras Vlad. Bug #3313003.
* CORE: Bug with the setting of the value of serializable types. Thanks to kyle lampert. Fixes #3363423.
* CORE: Added feature where foreign collections now contain objects whose foreign fields are set with the parent object.
* CORE: Added Dao.queryForMatchingArgs() and queryForFieldValuesArgs() to avoid SQL escaping issues. Thanks to coder sam.
* CORE: Added support for CREATE TABLE IF NOT EXISTS for Postgres > 9.1 Thanks to Daniel Colchete.
* CORE: Added arguments to Where.raw() and added Where.rawComparison() to better handle escaped args. Thanks to Daniel Colchete.
* CORE: Removed deprecated raw results methods that were replaced in 4.10.
* CORE: Removed deprecated JAVA_DATE* types that were replaced in 4.12.
* ANDROID: Added a OrmLiteBaseActivityGroup to the various base classes. Thanks to zachawilson.
4.23: 6/3/2011 (svn r1805)
* CORE: Allow the user to be able to override the persister for the built-in types as well.
* CORE: Added a orderColumnName field to the ForeignCollectionField to order collections based on a column.
* CORE: Moved the external log classes over to the JDBC package to make core a bit smaller.
* CORE: Added queryForSameId(), createIfNotExists(), and createOrUpdate() to DAO.
4.22: 5/19/2011 (svn r1777)
* CORE: Fixed major problem with DAO loops and caching. Thanks much to the user list. Bug #3301588.
* CORE: Fixed problem with queryForMatching() and queryForFieldValues() if no fields. Thanks to JC. Bug #3301253.
* CORE: Fixed problem with configuring fields in base class without annotations. Thanks to JC, Rahan. Bug #3301698.
* CORE: Fixed problem with LazyForeignCollection.toArray(T[]). Thanks to Skylar. Bug #3302924.
* CORE: Added initial support for defining external DataPersister classes for persisting non-built-in types. Thanks to Craig.
* CORE: Removed auto-downcasing of hand wired table name in DatabaseTableConfig. Thanks to Tomas. Bug #3302976.
* CORE: Added the maxEagerForeignCollectionLevel field to the @ForeignCollectionField annotation to limit recursion.
* CORE: Renamed the maxForeignLevel field in @DatabaseField to be maxForeignAutoRefreshLevel to make more sense.
* CORE: Added support for creating empty foreign collection field so you can use add() on it when creating. Thanks to Craig.
* CORE: Added the concept of closeLastIterator() to the DAO and CloseableWrappedIterable for reentrant usage.
* CORE: Added better connection/statement testing code and fixed some additional missing closes.
* JDBC: Tweaked the HSQLdb database type to acknowledge that it seems to support inner transactions.
4.21: 5/5/2011 (svn r1721)
* CORE: Added maxForeignLevel=1 type of setting to @DatabaseField to limit the foreign field recursive calls.
* CORE: Added a isOpen() to the ConnectionSource interface and implementations.
* CORE: Fixed a problem with the foreign auto-refresh loops and the last level. Thanks to Xavier. Bug #3296400.
* JDBC: Fixed a _very_ bad, embarrassing problem with unclosed statements. Thanks to MathieuLoutre. Bug #3298098.
* ANDROID: Added better logging and protection around use of the open-helper and AndroidConnectionSource after close.
4.20: 4/30/2011 (svn r1686)
* CORE: Refactored a couple of places to try and improve DAO creation with foreign fields. Thanks to the user list.
* CORE: Improved the dao caching when creating/dropping tables. Thanks to the user list.
* CORE: Refactored TableUtils.clearTable() and other methods to improve memory usage.
* CORE: Deprecated the BaseDao.createDao() methods. The DaoManager.createDao() methods should be used instead.
* CORE: Improved the size guessing during StringBuilder creation to reduce enlarge calls. Thanks to Andy.
* CORE: Added support for uniqueCombo field in DatabaseField annotation that supports combined unique fields.
* CORE: Turned the SelectArg into the ArgumentHolder interface so we could add other implementations.
* CORE: Added QueryBuilder.orderByRaw() and groupByRaw() so users can construct their own SQL. Thanks to jrj.
* CORE: Fixed interaction between foreignAutoRefresh and foreign collections. Thanks to jaxelrod. Bug #3290093.
* CORE: Fixed a bug with using the UpdateBuilder with Date fields. Thanks to stewert. Bug #3286455.
* CORE: Fixed some documentation problems with PreparedQuery. Thanks to Harry.
* ANDROID: Significantly improved the mechanism to inject the open helper class. Thanks to JC and Chris Banes.
* ANDROID: Improved the OrmLiteBaseActivity and other base classes' use of the context. Thanks to Chris Banes.
* ANDROID: Added level caching for speed and added a ORMLite log tag for easy enabling all logs.
4.19: 4/11/2011 (svn r1638)
* CORE: Fixed stupid DaoDaoEnabled.delete() cut and paste bug. Bug #3276679.
* CORE: Added support for storing char fields with ORMLite. Derby, of course, was the most painful to get working.
* CORE: Added convenience query() and iterator() methods to the QueryBuilder and Where objects.
* CORE: Added a countOf() call to the Dao to return the select count(*) result for the table.
* CORE: Added a clearTable() method to TableUtils. It will do a TRUNCATE if supported otherwise a DELETE.
* CORE: Added a convenience queryForEq() method to the Dao which matches on a single field value.
* CORE: Added support for CREATE TABLE IF NOT EXISTS for those databases which support it: H2, MySQL, SQLite.
* CORE: Added handling of >2 arguments to Where.and() and or() which can now string together many clauses with AND/OR.
* CORE: Added a Dao.queryForMatching() method to find entries in the database that match fields in the object passed in.
* CORE: Added a Dao.queryForFieldValues() method to find entries in the database that match the field/value map argument.
* CORE: Tightened up some of the allocations done internally when building statements.
4.18: 3/30/2011 (svn r1593)
* CORE: Bug with lazy foreign collections are not properly limiting iterator. Bug #3260099. Thanks to Brady.
* CORE: Bug with updating of foreign collections. Bug #3260103. Thanks to ede.
* CORE: Added better support for batch tasks by using a database transaction if auto-commit isn't supported.
* ANDROID: You can now use the callBatchTask method on the DAO which will use a transaction.
4.17: 3/27/2011 (svn r1576)
* CORE: Fixed a couple of places were I was using Java 1.6 only methods. Bug #3260096. Thanks to Javier and jc.
* CORE: Improved the reentrance during query and class configuration initialization.
* CORE: Improved the DaoManager handling of generic dao classes and a registerDao method. Thanks to jc.
* ANDROID: Fixed Android v1.6 support by removing some Java 1.6 methods.
4.16: 3/23/2011 (svn r1553)
** WARNING: ** 4.16 was released with some Java 1.6 calls which broke a lot of people. This was fixed in 4.17.
* CORE: Added support for @@ForeignCollectionField which supports eager, lazy loaded collections of foreign objects.
* CORE: Added a DaoManager which caches DAOs that are constructed so we only do it once per class. Thanks to jc.
* CORE: Added BaseDaoEnabled class for supporting data objects which can self refresh/update/etc.. Some refactoring.
* CORE: Added UUID DataType for supporting the storing UUID fields. Auto-generation of UUID ids also works. Thanks to jc.
* CORE: Added STRING_BYTES DataType for supporting the storing of Unicode strings as byte[] blobs in the database.
* CORE: Fixed problem with SQLite (JDBC, Android) was not handling nested transactions correctly. Bug #3208074.
* Android: Users should consider using the new DaoManager instead of making DAOs by calling BaseDaoImpl directly.
* Android: Fixed problem with SQLite nested transactions correctly. They are not supported under Android.
* Android: Added the STRING_BYTES DataType so you can store Unicode strings in SQLite appropriately.
4.15: 3/7/2011 (svn r1513)
* CORE: Fixed a problem where Integer and Long fields could not be id fields. Bug #3202117.
* CORE: Resolved bad bug with querying for objects with null foreign field values. Bug #3199649. Thanks to Micael.
* CORE: Removed the confusing Where().foreignIdEq() and foreignIdIn() methods. Little extra value and loads of confusion.
* CORE: Refactored +1/-1 dance that core was doing to access and set SQL arguments. Now everything is 0 based in -CORE.
* JDBC: Changed TableCreator to take a list of Dao instead of BaseDaoImpl.
* JDBC: Added alpha version of a generic ODBC database type. Had to refactor null detection. Thanks much to Dale Asberry.
* JDBC: Added alpha version of a Netezza database type. Thanks much to Richard Kooijman.
4.14: 2/28/2011 (svn r1474)
* CORE: Added BYTE_ARRAY type for handling byte[] directly and not as a serializable. dataType _must_ be specified.
* CORE: Changed SERIALIZABLE type so that it _must_ be specified with the dataType.
* CORE: Added a Where.raw() method which allows you to inject a raw statement into the WHERE SQL clause.
4.13: 2/26/2011 (svn r1453)
* CORE: Added a special default string to @DatabaseField to allow default values of "". Bug #3191367.
* CORE: Added parameters to the queryRaw(), updateRaw(), and executeRaw() DAO methods. Thanks to Luke.
* CORE: Added support for the QueryBuilder.offset() method. Not supported on all database types.
* CORE: Added initial ping statements for verification that the database connection is still valid.
* CORE: Revamped the test hierarchy and implemented H2 stubs to be able to test CORE better.
* ANDROID: LONG_STRING handling under Android never worked. Bug #3192744.
* JDBC: Added isTableExists() boolean to the DAO and the DatabaseConnection. This does not work in Android.
* JDBC: Added a new constructor and other methods to allow use of TableCreator outside of Spring.
* JDBC: Revamped the jdbc pooled connection source to add a keep-alive thread and connection testing.
4.12: 2/17/2011 (svn r1417)
* CORE: Added LONG_STRING data type for supporting longer String fields.
* CORE: Renamed and deprecated data types JAVA_DATE, JAVA_DATE_LONG, and JAVA_DATE_STRING to remove the JAVA_ prefix.
* JDBC: Added DaoFactory class for spring to create DAOs without having to define a Dao subclass.
* JDBC: Fixed spring TableCreator creating of tables from just the class name. Bug #3182783.
* ALL: Updated documentation with more examples and revamped examples to be more stand-alone.
4.11: 2/14/2011 (svn r1382)
* CORE: Added Where.in(QueryBuilder) and Where.exists(QueryBuilder) sub-query handling.
* CORE: Added executeRaw() and updateRaw() methods to the Dao interface and associated classes.
* CORE: Added proper checking for the log level _before_ expanding the {} args. Bug #3180862.
* CORE: Fixed missing save/clear of special connection for setting autocommit for batch tasks. Bug #3178539.
* CORE: Made some fields and methods in BaseDaoImpl protected for folks extending this the base dao. Thanks to jc.
* CORE: Replaced NPE with better SQLException if trying to update just the id. Bug #3178360. Thanks to jc.
* CORE: Added Where.idEq(), Where.foreignIdEq(), and Where.foreignIdIn methods to expand query functionality.
* CORE: Added better handling of nulls returned by RawRowMapper. It also now throws SQLException. Thanks to Larry.
* ANDROID: Exposed the cursor from the iterator and android database results.
4.10: 2/2/2011 (svn r1339)
* CORE: Revamped the logging classes to use Levels. Also added a JavaUtilLog implementation.
* CORE: Added support for the foreignAutoRefresh boolean in DatabaseField which automagically refreshes foreign fields.
* CORE: Significantly refactored the RawResults class (now deprecated) and created GenericRawResults.
* CORE: Dao.queryForAllRaw() and Dao.iteratorRaw() now deprecated. Replaced with Dao.queryRaw() methods.
* CORE: Added the ability to get results as an array of Objects when you pass in the column-types.
* CORE: Found some unclosed statements in update(PreparedUpdate), delete(PreparedDelete) methods. Bug #3170021.
* ANDROID: Added missing OrmLiteBaseListActivity base class.
* ANDROID: Reordered the log class detection to put Android Log before commons logging. Bug #3167100.
* ANDROID: Split out the -core from this package. You now need to install BOTH core and android (or jdbc) packages.
* ANDROID: Removed the deprecated AndroidTableUtils class.
* ANDROID: Better wrapping of android.database.SQLException with java.sql.SQLException.
* JDBC: Split out the -core from this package. You now need to install BOTH the core and jdbc (or android) packages.
* ALL: Added LICENSE.txt file to all releases and documentation. It is basically the ISC public domain license.
4.9: 1/26/2011 (svn r1286)
* CORE: Changed the generated index names to have a table-name prefix and always have a "_idx" suffix.
4.8: 1/25/2011 (svn r1271)
* CORE: Added uniqueIndex = true and uniqueIndexName = "..." to the DatabaseField annotation to create unique indexes.
* ANDROID: Fixed the resulting jar so that it doesn't include the -core java files as well.
* JDBC: Fixed the resulting jar so that it doesn't include the -core java files as well.
4.7: 1/24/2011 (svn r1250)
* CORE: Added index = true and indexName = "..." to the DatabaseField annotation to create indexes. Thanks to Larry.
* CORE: Added a <T,ID> generic arguments to the Where() to support a convenience prepare() method.
* CORE: Added a close() method to RawResults which will close the iterator if returned from iteratorRaw().
* ANDROID: Fixed the javadocs so they get merged in from CORE. Still struggling with the source jar.
* JDBC: Fixed the javadocs so they get merged in from CORE. Thanks to jaxelrod. Still struggling with the source jar.
4.6: 12/15/2010 (svn r1217)
* CORE: Fixed issues with infinite recursion if there is a foreign object loop. Bug #3137579.
* CORE: Revamped the call structure internally to make way for the SimpleDB backend. Exposed FieldType array more.
* CORE: Removed some old deprecated methods from QueryBuilder and TableUtils.
* ANDROID: Added protection in case subclass onCreate is called so another connection isn't saved. Bug #3117883.
4.5: 11/17/2010 (svn r1178)
* CORE: Fixes some problems with Dates and Enums being id types.
* CORE: Fixed a big problem with boolean value escaping for some database types. Bug #3110466.
* CORE: Added code to throw exceptions when Serializable fields are ids or part of SQL comparison. Bug #3110468.
* CORE: Added support for fields being required to be SelectArgs (Date for example). Bug #3110948.
* JDBC: Added better detection of database types from the URL.
* JDBC: Changed SQLite boolean representation to be 1/0 instead of true/false. Bug #3110467.
* JDBC: Added callBatchTasks() method to the Dao for running batch tasks. Not applicable to Android.
* JDBC: Removed some deprecated methods from DatabaseTypeUtils.
* JDBC: Significantly improved the testing for all field types. Thanks to Larry for point out some critical bugs.
4.4: 11/10/2010 (svn r1135)
* CORE: Fixed a major problem with refreshing some field types. Bug #3106962.
4.3: 11/9/2010 (svn r1113)
* CORE: Renamed the ConnectionSource#saveTransactionConnection and clear to be saveSpecialConnection and clear.
* CORE: Added functionality to RawResults to get all results as a List<String[]>.
* CORE: Added functionality to RawResults to get all results as a List<T> with RawRowMapper.
* CORE: Added nested transaction support. Had to add per-database checks. Bug #3106108.
* CORE: Added walking up the super classes to find database fields. Bug #3106109.
* CORE: Added an isClosed() method to DatabaseConnection so the connection source can detect problems.
* CORE: Removed some deprecated methods from the DAO and around the prepared statement code.
* CORE: Added to the manual a section on identity columns. Another section on database flavor notes.
* JDBC: Added protection against inner connection saves.
* ANDROID: Solve the problem of recursion in onCreate and onUpdate differently. Bug #3096875.
4.2: 10/13/2010 (svn r1064)
* CORE: Improved messaging around unknown columns.
* CORE: Added a save and clearTransactionConnection to the TransactionManager. Bug #3085345.
* CORE: Added a missing releaseConnection call to the transactionManager. Bug #3085344.
* CORE: TableUtils was not releasing its database connection for table create/drop. Bug 3086752.
* JDBC: Added new reentrant, pooled connection manager JdbcPooledConnectionSource. Needs to be reviewed!!
* JDBC: Added support for transactions to DataSourceConnectionSource and pooled connection sources.
4.1: 10/8/2010 (svn r1031)
* CORE: removed some old deprecated methods.
* JDBC: fixed problem where connections were not being closed in the DataSource wrapper. Bug #3083799.
4.0: 10/3/2010 (svn r1004)
* CORE: Removed most external usage of the DatabaseType since the ConnectionSource now provides it.
* CORE: BaseDaoImpl now knows how to self-initialize if constructed with the ConnectionSource.
* CORE: Dao.queryBuilder() now returns a QueryBuilder. You call QueryBuilder.prepare() to get a PreparedQuery.
* CORE: Added Dao.updateBuilder() and deleteBuilder() for constructing custom UPDATE and DELETE statements.
* CORE: Tightened up some more classes to remove unnecessary allocations.
* JDBC: Deprecated the DatabaseTypeUtils calls since we should just construct a JdbcConnectionSource directly.
* JDBC: Removed the DatabaseTypeFactory and simplified the Spring code since we removed the external DatabaseType.
* JDBC: JdbcConnectionSource now knows how to self-initialize if constructed with the URL.
* JDBC: DataSourceConnectionSource now needs the database URL as well as the DataSource.
* ANDROID: Made changes to OrmLiteSqliteOpenHelper to remove the DatabaseType references.
------------------------------------------------------------------------------------------------------------------------
3.5: 9/28/2010 (svn r948)
* CORE: Revamped the StatementBuilder to allow foreign fields to be queried from the object as opposed to just its id.
* CORE: Because of the internal changes, the prepareStatment() call now can throw SQLException.
* CORE: Significantly reduced the number of objects created by the DAO and other classes to lower GC overhead.
* ANDROID: Core refactoring should improve speeds due to reduced memory overhead
3.4: 9/24/2010 (svn r916)
* CORE: Revamped the log factory to use the internal LogType enum better and to construct the logs using reflection.
* CORE: Added javax unique=true handling which should have been in 3.3.
* ANDROID: Moved AndroidLog over to the Android package and reworked it to make direct calls to the android.util.Log.
* ANDROID: Fixed problem with Android cursor were field-name escape characters were in column map. Bug #3074249.
3.3: 9/22/2010 (svn r883)
* CORE: Added UNIQUE constraint handling for ensuring fields are unique in all rows of the table.
* CORE: Added a missing deprecated BaseJdbcDao that should have been in 3.2.
* CORE: Added a better 'Getting Started' section to the manual. Thanks much Nelson!
* JDBC: Added a missing setDataSource to the DataSourceConnectionSource (fixes bug #3066894).
3.2: 9/14/2010 (svn r833)
* Large internal code reorganization to allow database calls outside of JDBC for better Android support.
* Split ormlite into 3 packages: -core, -jdbc, and -android
* Abstracted DataSource/Connection/ResultSet classes to be ConnectionSource/DatabaseConnection/DatabaseResults interfaces.
* Renamed the BaseJdbcDao to be BaseDaoImpl since it is no longer just JDBC
* Renamed Dao.queryBuilder() -> Dao.statementBuilder() to accommodate custom delete, etc. statements
* Renamed the QueryBuilder object to be StatementBuilder
* Renamed the PreparedQuery object to be PreparedStmt
* You don't set your DataSource on the DAOs anymore. You use the DataSourceDatabaseConnection wrapper class.
* Created an internal SqlType enumeration which was a better external abstraction of SQL type integers.
3.1: 9/12/2010 (svn r717)
* Closer but still not ready.
3.0: 8/17/2010 (svn r561)
* Not ready for prime time
------------------------------------------------------------------------------------------------------------------------
2.12: 8/16/2010 (svn r548)
* Added a logger which should detect and delegate to the internal Android logger.
* Changed the logger classes to use reflection to remove the compilation errors if classes aren't there.
* Added to the documentation on how to remove log classes which are red because of missing classes.
2.11: 8/13/2010 (svn r537)
* Removed the final dependency by using reflection to get at the javax.persistance annotations.
* Added a persisted boolean to DatabaseField annotation so you can easily disable a field.
2.10: 8/13/2010 (svn r526)
* Added some better support for Android OS built-in and 3rd party JDBC drivers.
2.9: 8/11/2010 (svn r514)
* Found and fixed embarrassing problem where the local logger wasn't filtering by level. (bug #3043423)
* Improved some docs.
2.8: 7/20/2010 (svn r503)
* Found and fixed problems with boolean default values under Derby. (bug #3032387)
* Trickle down changes which affected a lot of FieldType and JdbcType. Also improved the null handling.
* Fixed the docs which referenced the BaseDao which was completely wrong.
2.7: 7/19/2010 (svn r488)
* Revamped the logging classes so we can remove the hard dependency on commons-logging.
* Changed MySQL to use DATETIME instead of TIMESTAMP for Date fields.
* Added the createDao static method to the BaseJdbcDao so you can create DAOs without a new class.
2.6: 7/7/2010 (svn r473)
* Fixed bug 3026487 where the limit in QueryBuilder was removed after a prepare.
* Added log wrapping so we can remove the commons-logging dependency and replace it with a LocalLog impl.
* Isolated the javax.persistence usage into one class for easy removal.
* Renamed some database type methods.
2.5: 6/28/2010 (svn r458)
* Finally figured out all of the tricky conf settings to get ORMLite published to the central maven repo.
2.4: 6/26/2010 (svn r397)
* Fixed bug with Derby and Hsqldb where raw queries would not match quoted names. Capitalized field names.
* Fixed a problem where value quoting for numbers and string arguments weren't handled right.
* Fixed problem in MySQL where timestamps were by default not-null and set to the current time.
* Fixed problem where default value and null specifier were generated in wrong order in CREATE TABLE.
* Removed the restriction that primitive values couldn't have default values. Not sure why that was added.
* Added initial code to allow the user to run raw String queries through the DAOs.
* Changed the iterator returned by the Dao to a CloseableIterator to hide internal methods.
* Added throwIfNull annotation to DatabaseField to throw if a null field is pulled into a primitive.
2.3: 6/23/2010 (svn r382)
* Fixed a problem with null handling which would come back as 0s.
2.2: 6/18/2010 (svn r374)
* Added enum support with both integer ordinal and string name support.
* Changed the mechanism for detecting foreign fields with the the javax.annotations.
2.1: 6/14/2010 (svn r366)
* Added the ability of storing Serializable objects as the new SERIALIZABLE type.
* Fixed problem with generated ids under MS SQL.
* Trimmed the test dependencies and documented them.
* Got rid of unused close and destroy methods on the DAOs and JdbcTemplate.
* Fixed bug with username and password settings on the connection.
* Added Java 6 methods to the data source. Fixed Java 6 compile error.
2.0: 6/12/2010 (svn r344)
* Finally took the plunge and removed the Spring dependency. Down to 2 dependencies.
------------------------------------------------------------------------------------------------------------------------
1.13: 6/11/2010 (svn r332)
* Fixed Postgres mixed case problem with fields and sequence numbers.
1.12: 6/7/2010 (svn r324)
* Added database column case conversion because postgres had some problems with sequence name case
* Added support for javax.persistence annotations (@Entity, @Column, @Id, @GeneratedValue).
* Added a cache of the column positions for mapped queries to make the looking up of column names faster.
* Finished up the next texinfo online and print documentation.
* Added an initial try at a DB2 database type. Completely untested.
1.11: 5/21/2010 (svn r298)
* Revamped the DatabaseTableConfig wiring. Better.
* Found a problem with long sequence names in Postgres.
* Added new DatabaseFieldConfig wiring for hand or Spring wiring a class' details if you don't use annotations.
* Fixed problem when a class just has a generatedId field which cannot be inserted or updated.
* Found/fixed an interesting bug with generated-id and canBeNull = false.
* Added queryForFirst method to the DAO hierarchy.
1.10: 5/15/2010 (svn r281)
* Revamped TableInfo constructors to support taking in a list of FieldType for external object config. Bit messy.
* Made the InnoDB engine the default for tables created the the MySQL DatabaseType.
1.9: 5/14/2010 (svn r269)
* Added support for using getXXX and setXXX methods instead of field access reflection.
* Added initial TransactionManager for easy support of transactions.
* Lots of notes, documentation, javadocs.
* Added an int return value to the refresh() method to match update and delete.
1.8: 5/2/2010 (svn r246)
* Starting initial work to support foreign objects.
* Some refactoring of the id field assignment.
1.7: 4/29/2010 (svn r236)
* Significant revamping of the junit tests.
* Initial take on a MS SQL Server port using the JTDS driver. Kudos to the JTDS folks.
* Turns out that HSQLDB is a bit different from the rest (grrrr). I added an appendLimitValue to database type.
* Added LIMIT support to the package. This caused a bunch of trickle down.
* Renamed some of the is fields in the DatabaseType. Added isLimitSupported because of Derby. Grrrrrr.
* Added an initial take on an Oracle database type. No access to an Oracle db so some guesses.
* Added a number min/max test. Exposed some strangeness with Derby.
* Duplicate field issue in test found by Sqlite. Added additional tests and moved tmp databses.
1.6: 4/27/2010 (svn r195)
* Added license stanza.
* Refactored the id-field configuration calls to allow for better override methods.
* Better hsqldb support with the help of the mailing list.
1.5: 4/24/2010 (svn r181)
* Massive move of source code down into trunk/branch hierarchy.
* Ton of changes as I add support for Sqlite and Hsqldb.
* Lot of refactoring to make the BaseDatabaseType more generic.
* Added logging of arguments to statements by setting the ormlite.log.arguments system property to be true.
* Added auto-drop for TableCreator and tuned the examples and tests.
1.4: 3/24/2010 (svn r164)
* Added a couple of examples showing simple usage of the package and usage with Spring.
1.3: 3/18/2010 (svn r156)
* New factory class and tuned the DAO wiring for better Spring wiring.
* Return the query string prepared by the query builder for logs or external use.
* Added better logging of arguments being null replacing NPEs.
1.2: 2/9/2010 (svn r141)
* Replaced Stack (which extends Vector) with internal stack that uses ArrayList.
* Allow rows with just GeneratedId fields.
1.1: 2/2/2010 (svn r129)
* "It's ready"
* Finally got the deploy to SF to work.
* Added deleteIds for deleting a collection of ids.
* Major revamping of the build statement stuff.
* Collapsed the StatementBuilder class into each of the mapped statements. Feels a lot tighter.
------------------------------------------------------------------------------------------------------------------------
0.12: 2/1/2010 (svn r119)
* Major revamping of the MappedStatement class to pair it down and get a class hierarchy going.
0:11: 2/1/2010 (svn r110)
* queryForAll(PreparedQuery) should be named query instead since it will not return all. Bleah.
* Added delete(Collection) call to the Dao to delete a number of items using SQL IN clause.
* Added isNull and isNotNull methods to Where.
* Fixed some query issues with derby and NOT for all but h2. Added QueryBuilder tests for each db type.
0.10: 1/31/2010 (svn r102)
* Added PreparedQuery interface to hide MappedStatement.
* Added updateId and refresh dao methods.
0.9: 1/31/2010 (svn r99)
* Added better handling of classes with just an id field.
* Renamed StatementMapper to MappedStatement which is much better.
* Moved the select args to the statement mapper and got rid of the prepared query.
0.8: 1/27/2010 (svn r85)
* Lot of javadoc work.
0.7: 1/27/2010 (svn r79)
* Added prepared statement argument injection and moved that code into PreparedQuery.
* Renamed BaseDao to Dao since it was an interface. Duh.
* Updated the SQL to produce uppercase SQL statements and changed method names from add to append.
* Major revamping of the query internals with the addition of the QueryBuilder class.
* Fixed escaping in H2 and MySQL.
0.6: 1/23/2010 (svn r55)
* Major reorganization after some good feedback from Chris. I should be dealing with a DataSource.
* Renamed DatabaseConnection to DatabaseType.
* Added initial take on queryAll and interator ordering.
0.5: 1/19/2010 (svn r39)
* Ouch, fixed bad bug with storing of null dates in the database.
* Fixed postgres primary key id escaping.
0.4: 1/17/2010 (svn r32)
* Added initial support for the derby database.
* Fixed problems with ids not being set as primary keys.
* Added more types to the jdbc list: byte, short, float, double.
0.3: 1/13/2010 (svn r19)
* Improved the Postgres handling of sequence numbers.
* Fixed bug with the default value stuff.
* More extensive postgres tests exposed a bunch of issues with table and column-name escaping.
* Added the objectsEqual call for testing purposes.
0.2: 1/11/2010 (svn r13)
* Some class renaming and reorganization.
* Lots of javadocs.
0.1: 1/10/2010 (svn r8)
* Starting to look stable-ish.
* Complete revamping of the query processing.
* Still fighting a bit with object hierarchy.
* Fixed a bunch of bugs in the state building escaping of reserved words.
0.0: 1/7/2010 (svn r1)
* First check-in.