openjpa-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Patrick Linskey <plins...@gmail.com>
Subject Re: OpenJPA 1.2.x & map key as enum stored as string (probably a FAQ)
Date Wed, 14 Apr 2010 17:56:48 GMT
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 <matthew@matthewadams.me> 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:matthew@matthewadams.me
> skype:matthewadams12
> yahoo:matthewadams
> aol:matthewadams12
> google-talk:matthewadams12@gmail.com
> msn:matthew@matthewadams.me
> http://matthewadams.me
> http://www.linkedin.com/in/matthewadams
>



-- 
Patrick Linskey
202 669 5907

Mime
View raw message