How about having a custom @Enumerated annotation which offers NATIVE as an additional choice?
2016-08-26 10:16 GMT+02:00 Emmanuel Bernard <emman...@hibernate.org>: > Can you give HotRod's example of native enum - I imagine Protobuf ? > > The issue I see is that ordinal could be an acceptable explicit decision > that would not be available to the user if you use default as native. > > I'm tempted to go native all the time at the detriment of people that > need high customization. > > Emmanuel > > On Mon 2016-08-15 18:14, Sanne Grinovero wrote: > > In the context of Hibernate OGM, it turns out that some datastores > > have a rather nice "native" support for enums. > > > > We aim to map each property of the user's domain model to its most > > appropriate "physical type", unless the choice is overriden by the an > > explicit user request. > > > > In the case of an Enum, JPA annotations such as @Enumerated have an > > attribute EnumType to choose the physical representation: > > > > public enum EnumType { > > /** Persist enumerated type property or field as an integer. */ > > ORDINAL, > > > > /** Persist enumerated type property or field as a string. */ > > STRING > > } > > > > However, there's no support for a "NATIVE". Also, the annotation > > specifies that "ORDINAL" is the default value so I can't just assume > > that the user didn't specify anything and we're good to use our own > > NATIVE implementation. > > > > Assuming that we can't change the JPA spec, any suggestion on when I > > could have the Hot Rod dialect for OGM to actually produce a "nice" > > mapping into native enums? > > > > I'm tempted to just use natives all the time; In the case in which the > > user opted for "STRING" I could drop a warning - or decide to honour > > that - but in case of ORDINAL I just can't tell if it's a default > > choice or not so I think a warning would be too much. > > > > Another alternative would be that I "go native" when the @Enumerated > > annotation isn't specified at all: looks like this mapping is valid > > according to ORM as it seems to treat it as if there was an implicit > > @Enumerated annotation; I'm not happy about having to rely on people > > to not use an explicit annotation though. > > > > Thanks, > > Sanne > > _______________________________________________ > > hibernate-dev mailing list > > hibernate-dev@lists.jboss.org > > https://lists.jboss.org/mailman/listinfo/hibernate-dev > _______________________________________________ > hibernate-dev mailing list > hibernate-dev@lists.jboss.org > https://lists.jboss.org/mailman/listinfo/hibernate-dev > _______________________________________________ hibernate-dev mailing list hibernate-dev@lists.jboss.org https://lists.jboss.org/mailman/listinfo/hibernate-dev