Releases: martin-jamszolik/goodenough-jdbc
v1.7.2
What's Changed
- Attempt to query an entity even if no Annotation present on the class. by @martin-jamszolik in #16
Full Changelog: v1.7.1...v1.7.2
Release v1.7.1
Mainly code cleanup and more unit testing, along with dependency updates with gradle.
Code hardening.
No major api behavior changes
What's Changed
- Code clean up and testing for all real world scenarios by @martin-jamszolik in #17
Full Changelog: v1.7.0...v1.7.1
Release 1.7.0
What's Changed
- Small QoL clean ups and testing by @martin-jamszolik in #14
- RefValue for simpler foreign key reference. by @martin-jamszolik in #15
The #15 RefValue
object can really come in handy when you are retrieving a list of data model like, Purchase Orders, or Proposals. Those object have references to other rich objects. However, you don't want to load these completely other than their ID and their main identifying label.
Real scenario in Kotlin:
@Named("purchaseorder")
@PrimaryKey("po")
class PurchaseOrder(
var po: Long?=null,
@Ref(value="req_key",label="requester.name") var requester: RefValue?=null,
@Ref(value="sup_key",label="supplier.sup_name") var supplier: RefValue?=null,
@Ref(value="adr_key",label="poaddress.address") var address:RefValue?=null,
var effective: LocalDate? = null,
var tax: BigDecimal?= BigDecimal.ZERO,
var voidDate: LocalDate?=null,
var pay_type: String?=null,
@Skip val items: MutableList<PurchaseItem> = mutableListOf(),
) : Model()
The list of Purchase orders now contain enough of information to render and display in a list and their IDs if we ever had to load full details on requester, supplier.
Full Changelog: v1.6.1...v1.7.0
Release 1.6.1
What's Changed
- Usecase between java.util.Date vs java.time.LocalDate
AddedLocalDate
support when configured for such field type.
Full Changelog: v1.6.0...v1.6.1
Release 1.6.0
- Increase Code Coverage by adding small corner cases based on real use project scenarios
- Make spring library compile only scope, so that your project does not import conflicting version and use your version instead.
- Cache
PersistenceRowMapper
cachable with the use ofof()
method. This really helps when you use lambda blocks for mapping logic. SqlQuery
. Remove confusingwhere
vsclause
methods. Just useclause
for all usecases to combine SQL statements. It's just more consistent this way. We should not try to develop a DSL API to make sure your query is valid. It's just good enough to use for dynamic query scenarios.
Release 1.5.0
- Improve
PersistableRowMapper
so that it handles labeled column better. - Improve Kotlin compatibility when mapping numeric keys between Long and Int as primitives.
- Changed
Model
key properties torefs
to better Json nesting apprehension.
Release 1.4.0
This release includes updates to make it easier to marshal the model objects with libraries like Jackson
when exposed over REST API.
Example:
{
"pp_key": 24,
"date": "2015-11-16T10:00:00.000+00:00",
"title": "Hosted Application Subscription 2015-2016",
"editable": false,
"profit": 0.00,
"type": 0,
"status": "Approved",
"authorized": "2015-11-16T05:00:00.000+00:00",
"key": {
"keys": [
{
"key": "pr_key",
"value": 45
}
]
},
"id": 45,
"new": false
}
Model and API breaking changes have been introduced here.
A bit of refactoring will be needed if library used extensively
Release 1.3.0
Added support for Field annotations.
This helps when using Java records or Kotlin Data classes.
Covered additional cases with foreign key names being different between two tables.
Version 1.2.0
More refinements, test cases, and composite key support. Consolidating additional API.
Version 1.0
Version v1.0.
With over 90% coverage and a representative unit test to demonstrate all features.