That sounds like a great approach to me. regards Malcolm
On Mon, Jun 15, 2020 at 9:49 PM Andrus Adamchik <and...@objectstyle.org> wrote: > > > > On Jun 9, 2020, at 5:54 PM, John Huss <johnth...@gmail.com> wrote: > > > > 2) Regarding skipping parsing when just going straight back out again to > > serialization - I have felt the reluctance (like you) of parsing this in > > those cases. But one thing to think about is that the parser/serializer > > (let's say Jackson in this case) may have special rules for how types are > > outputted like pretty/minified, sorted/unsorted, string/number (for > > BigDecimal). So skipping that parse/serialization may not actually be > > desirable, at least not in every case. > > Was discussing this offline with Nikita and stumbled on what can be a good > solution: > > 1. Cayenne would provide a set of "unparsed" wrapper types (Wkt, Json, > etc.) and the JDBC/SQL machinery around them (ExtendedType, > SqlTreeProcessor). > 2. A user who needs a parsed version would create their own types (e.g. > WktParsed, JsonParsed), and would connect them to Cayenne via a custom > ValueObjectType [1] (e.g. ValueObjectType<WktParsed, Wkt>). > > Such a two-tier approach would allow the users to map persistent > properties to anything they want without much effort and use their > preferred third-party parsers. While Cayenne would do all the DB-side heavy > lifting. The two parts are cleanly separated. > > Andrus > > > [1] https://cayenne.apache.org/docs/4.2/cayenne-guide/#value-object-type