make @CurrentTimestamp take over the job of @Source, and make value generation work better with version properties

Description

Currently, all the timestamp generation stuff shows all the signs of evolution over time. We really don’t need @Source, @CurrentTimestamp, @UpdateTimestamp, and @CreationTimestamp, we only have so many different annotations because different people were worried about different specific problems at different times.

It’s well past time for a cleanup. I would be perfectly happy to deprecate three of these annotations and leave only @CurrentTimestamp standing, but @UpdateTimestamp and @CreationTimestamp survive because they can be viewed as abbreviations.

To make all this work, I needed to make all three of them allow an explicit SourceType, and I needed to fix up the handling of value generation with version properties, which wasn’t quite working perfectly, because the main point of this is to let you write @Version @CurrentTimestamp instead of @Version @Source(DB).

Activity

Show:

Gavin King November 28, 2022 at 9:56 PM

Done! This was a really great cleanup!

Gavin King November 28, 2022 at 12:23 PM

Note that this change also gets us quite a bit closer to replacing the special-purpose VersionJavaType stuff with the more generic ValueGeneration machinery.

Fixed

Details

Assignee

Reporter

Components

Fix versions

Priority

Created November 28, 2022 at 12:22 PM
Updated December 22, 2022 at 10:59 PM
Resolved November 29, 2022 at 7:44 AM