Hi, Max! I think that @PersistentMap is your friend here. Have you tried that annotation?
Happy sailing, -Patrick On Wed, Apr 14, 2010 at 9:59 AM, Matthew Adams <[email protected]> wrote: > Hi all, > > Sorry if this is a FAQ. I can't seem to find it in the docs or googling. > > I have the following scenario and just need to know which > OpenJPA-specific annotations to apply to my field. The scenario is a > field of type Map where the map key is an enum that I want to store as > @Enumerated(EnumType.STRING) and is not an attribute of the values in > the map using OpenJPA 1.2.x & JPA 1.0 (can't go to JPA 2.0 yet). > Assume all classes use a simple @Id field of type Long. > > public enum Place { HOUSE, CAVE, LEAN_TO, BARE_SPOT; } > > @Entity > public class WildThing { > /* NOTE: does **not** have a field of type Place! */ > �...@id > protected Long id; > protected String name; > } > > @Entity > public class WhereTheWildThingsAre { > > �...@id > protected Long id; > > // what annotation(s) do I put here? > �...@onetomany(cascade = > { CascadeType.MERGE, CascadeType.REFRESH, CascadeType.PERSIST }) > protected Map<Place,WildThing> thingsByClassification > = new HashMap<Place,WildThing>; > > } > > Again, I want the key to be stored as the string representation of the > enum constant. > > TIA, > Matthew > > -- > mailto:[email protected] > skype:matthewadams12 > yahoo:matthewadams > aol:matthewadams12 > google-talk:[email protected] > msn:[email protected] > http://matthewadams.me > http://www.linkedin.com/in/matthewadams > -- Patrick Linskey 202 669 5907
