This is because Hibernate only understands Java enums, not Scala Enumerations. However, you could easily write a custom type mapping for Scala enumerations and use the Hibernate @Type annotation - it's not JPA canon (why didn't they forsee the need for customized mappings?), but if you're using Hibernate anyway shouldn't be a big deal.
Kris On Fri, Sep 19, 2008 at 3:20 PM, Charles F. Munat <[EMAIL PROTECTED]> wrote: > > I thought about that. Essentially, that's what Hibernate is supposed to > do, though. It only saves the integer value. (At least, that's what > @Enumerated(EnumType.ORDINAL) is supposed to mean, if I understand it > correctly.) > > I'm still curious as to why the code I have doesn't work, but if no one > else knows, then I guess I'll have to do it manually as you suggest. > > Thanks. > > Chas. > > David Pollak wrote: >> Rather than storing the Gender enumeration in the RDBMS, I'd suggest >> storing the Int value of the enumeration. >> >> @Column{val name="gender"} >> var genderInt : Int = _ >> >> >> def gender: Gender = Gender(genderInt) >> def gender_=(what: Gender.Value) = .... >> >> >> >> Charles F. Munat wrote: >>> I'm still trying to get a Gender enumeration to work with JPA. The >>> problem now seems to be on the JPA end (I'm using the JPADemo code that >>> Derek provided). >>> >>> I get the following error: >>> javax.persistence.PersistenceException: org.hibernate.MappingException: >>> Could not determine type for: scala.Enumeration$Value, for columns: >>> [org.hibernate.mapping.Column(gender)] >>> >>> Here is the relevant code: >>> >>> >>> @serializable >>> object Gender extends Enumeration { >>> type Gender = Value >>> val Unknown = Value(0, "Unknown") >>> val Male = Value(1, "Male") >>> val Female = Value(2, "Female") >>> } >>> >>> import Gender._ >>> >>> @Entity >>> @Table{val name = "USERS"} >>> class User { >>> @Id >>> @GeneratedValue{val strategy = GenerationType.AUTO} >>> var id : Long = _ >>> >>> @Column{val name="NAME_LAST"} >>> var nameLast : String = "" >>> >>> @Column{val name="NAME_FIRST"} >>> var nameFirst : String = "" >>> >>> var username : String = "" >>> >>> @Column{val name="EMAIL_ADDRESS"} >>> var emailAddress : String = "" >>> >>> @Enumerated(EnumType.ORDINAL) >>> var gender : Gender = _ >>> >>> ... >>> } >>> >>> Also, where is the best place to put the Gender enumeration so that it >>> is visible both in the persistence project and in the webapp? >>> >>> Thanks for any and all help. >>> >>> Chas. >>> >>> >> >> >> > > > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Lift" group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~----------~----~----~----~------~----~------~--~---