Omlouvat se nemusite, dal jste mi alespon na chvilku nadeji ;-)
Tom ________________________________ From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of "Ing. Jan Novotný" Sent: Thursday, February 01, 2007 2:55 PM To: Java Subject: Re: JPA a enum No vidíte to, to je tak, když člověk čte maily povrchně - toho Set<? extends Enum> jsem si nevšimnul. To moje řešení je jen na jednotlivou property - a řešení pomocí anotace @Enumerated je rozhodně elegantnější. Buďto v té době nebylo, nebo jsem na něj při hledání řešení nenarazil. Takže zpátky na stromy, všechno špatně :) Omlouvám se za zavádějící cestu. Novoj Tomas Hubalek napsal(a): Jo to dedeni je OK, s tim nemam problem. Dokonce bych rekl, ze pokud se jedna o jednotlivou property tak muzu pouzit tu anotaci @Enumerated a taky to funguje. Ale nevsiml jsem si ve vasich prikladech toho, ze by to byla property typu Set<? extends Enum> Dik Tom ________________________________ From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of "Ing. Jan Novotný" Sent: Thursday, February 01, 2007 2:38 PM To: Java Subject: Re: JPA a enum No ono, to nakonec není tak hrozné. Děděné třídy z EnumUserType už jsou směšně jednoduché. Toto jsem řešil v listopadu loňského roku, tak kdo ví - třebas už zařadili do Hibernate větší podporu Enumeration. Ono by bohatě stačilo, kdyby se ta třída EnumUserType dala vzít odněkud od nich - takhle kopírovat celou třídu je hnus. Každopádně je to řešení, které se doporučuje na fórech a je to funkční řešení - to můžu potvrdit z vlastní zkušenosti :). Novoj Tomas Hubalek napsal(a): No to je teda masicko :-/ Neco podobneho jsem nasel na hibernate.org, ale nadsenim me to nenaplnuju. Pokud nenajdu nic citelnejsiho, udelam ten enum jako normalni @Entity. Tom ________________________________ From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of "Ing. Jan Novotný" Sent: Thursday, February 01, 2007 1:27 PM To: Java Subject: Re: JPA a enum Ahoj, netuším, jestli to standard JPA řeší nějak obecně, ale pro hibernate jsem musel provést následující věc. Je to poměrně častý problém řešený v několika diskusních threadech (link teď dohromady nedám, protože bych ho musel znovu hledat). Přikládám zdrojáky mého modelu, kde jsou enumerace použity a řešení pro Hibernate ORM. Důležité jsou třídy: Enum třídy: Gender a SkillLevel Helper classy pro Hibernate: EnumUserType<E extends Enum<E>> GenderUserType extends EnumUserType<Gender> SkillLevelUserType extends EnumUserType<SkillLevel> které říkají Hibernate, jak se má k daným Enum hodnotám chovat při persistování a načítání. Vlastní definice v HBM XML je potom např. pro Goalkeepera, který používá Enumy takováto: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-mapping PUBLIC '-//Hibernate/Hibernate Mapping DTD 3.0//EN' 'http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd'> <hibernate-mapping> <class name="com.fgf.ot.model.Goalkeeper" table="GOALKEEPERS"> <id name="id" column="ID" type="java.lang.Long"> <generator class="native"/> </id> <property name="firstname"/> <property name="surname"/> <property name="age" type="java.lang.Integer"/> <property name="gender" type="com.fgf.ot.model.GenderUserType"/> <property name="catchSkill" type="com.fgf.ot.model.SkillLevelUserType"/> <property name="perception" type="com.fgf.ot.model.SkillLevelUserType"/> </class> </hibernate-mapping> Taky bych si to představoval jednodušší ;) Novoj -- -------------------------------------------------------------- Ing. Jan Novotný @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ http://blog.novoj.net Myšlenky dne otce Fura -------------------------------------------------------------- Tomas Hubalek napsal(a): Zdar, mam takovy dotaz. Chtel bych udelat JPA mapping (Hibernate, ale to snad neni podstatne) nasledujicich trid a nevim, jak to oannotovat. public enum Group { A, B, C} @Entity public class Person { ... @????? Set<Group> groups; ... } Pokud chci jenom jednu property, tak jde pouzit @Enumerated(), ale pro Set to nefunguje. Mate nekdo nejaky tip? Nebo mam obetovat enum a udelat si UserType. Tom !DSPAM:144,45c1ef1d52101336712104!
