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! 

 

Odpovedet emailem