The trouble with that is that custom Hibernate types seem to be difficult to use through JPA. Or am I just misinformed? (Please be so).
Hacking the driver to lie about the type and auto cast to/from text is ugly, but preserves the ability to use server validation etc with no changes higher in the client.
I would really love to be able to use JSON to store a serialized tree that got unpacked into an object graph using JAXB and jaxxon or similar, so instead of a 'json' entity field in the mapping you could use the root of (or a collection of) your custom jaxb annotated objects. That would take a lot more brains on the ORM though.