v6.0.3 (2025-05-20)
<dependency>
<groupId>net.hasor</groupId>
<artifactId>dbvisitor</artifactId>
<version>6.0.3</version>
</dependency>
Highlights
- Better support for string-based properties in entity query builders.
- BaseMapper design improvements.
- Stronger support for composite primary keys.
- Bug fixes.
Impact
- BaseMapper interface
- InsertExecute interface
- JsonTypeHandler class
Changes
- [Added] BaseMapper
update/upsert(supports composite PK). - [Added] BaseMapper
deleteByMapto delete by Map instead of entity (supports composite PK). - [Added] BaseMapper
replace/replaceByMapfor full-row replace (supports composite PK). - [Added] BaseMapper
updateByMapmirroringupdatebut taking Map (supports composite PK). - [Added] BaseMapper
deleteList/deleteListByMapaccept lists of entities and delete them (supports composite PK). - [Added] BaseMapper
loadBy/loadListByaccept Map/entity/other types as reference objects; reference must contain PK fields (supports composite PK). - [Added]
EntityQueryFuncfor EntityQuery to pass property names as strings (same idea asQueryFunc). - [Added] BaseMapper
pageBySamplegains overloads to specify sort fields, sort order, and null sort strategy. - [Improved] BaseMapper
countBySample/pageBySampleaccept Map/entity/other types as references. - [Improved] BaseMapper
initPageBySamplerenamed topageInitBySamplefor clarity. - [Improved] BaseMapper
updateno longer provides full-row update; useupdate/replaceto avoid risky full-row writes (supports composite PK). - [Improved] BaseMapper
deleteById/deleteByIdssimplified to accept concrete ids only; composite PK not supported; direct object delete removed (usedeleteList/deleteListByMap). - [Improved] BaseMapper
selectById/selectByIdssimplified to concrete ids only; composite PK not supported (useloadBy/loadListBy). - [Improved]
JsonTypeHandlerauto-chooses JSON serializer order: Jackson > Gson > fastJSON > fastJSON2. - [Improved]
PageObject/PageResulttwo-arg constructors now mean(pageNumber, pageSize)instead of(pageSize, totalCount). - [Improved]
AbstractSelectfieldslockGroupBy/lockOrderByvisibility: private -> protected. - [Improved]
AbstractSelect.addOrderBy/selectApplynow take String property names (was typeP) for easier reuse inEntityQueryImpl. - [Improved]
OrderNullsStrategyaddsvalueOfCodehelper. - [Fixed] Query/Update/Delete builders now use
is null/is not nullfor eq/ne with null (instead of= ?). - [Fixed]
InsertExecute.applyEntity(T entity)/applyEntity(T... entity)failed to detect Map and lost data; now handled.