EJB наследяване?!?
7 отговора
215 прегледа
EJB наследяване?!?
Къде може да се прочете повече за това. Гледам в примерите на XDoclet правят някакви фокуси!!! Там например има PersonBean (той явно не е бийн) и CustomerBean extends PersonBean. И двата са класовете които определят(се екстендват от) реалните бийнове.Всъщност само втория определя реален бийн. (в XDoclet се работи с един файл, който генерира всичко). Та Person-a не гененрира бийн а само помага на CustomerBean -а с някои (явно) общи полета).
Това не съм го срещал никъде досега и малко ме стресна!!!
Може ли да имам клас, който да се наследява от няколко бийна. И по някакъв начин да работя директно с него.
И съответно мога ли да направя relation към него. И по този начин да работя с общите полета на няколко различни бийна.
Проблема ми е следния. Имам един бийн, който има релация към друг бийн който може да точно един от няколко(n) разични типа. Тъпия начин за който се сещам е да направя едно поле тип което да ми определя към кой Getter да се обърна, а да си имам n getter-чета за всеки различен тип. По този начин ще направя много релации от различните типове към главния бийн. като всеки обект ще има релация с точно един от тези типови бийнове!!!
Дано да сте ме разбрали. Има ли някакъв друг начин да се постигне това?
Ако може да е по J2EE спецификация.
Това не съм го срещал никъде досега и малко ме стресна!!!
Може ли да имам клас, който да се наследява от няколко бийна. И по някакъв начин да работя директно с него.
И съответно мога ли да направя relation към него. И по този начин да работя с общите полета на няколко различни бийна.
Проблема ми е следния. Имам един бийн, който има релация към друг бийн който може да точно един от няколко(n) разични типа. Тъпия начин за който се сещам е да направя едно поле тип което да ми определя към кой Getter да се обърна, а да си имам n getter-чета за всеки различен тип. По този начин ще направя много релации от различните типове към главния бийн. като всеки обект ще има релация с точно един от тези типови бийнове!!!
Дано да сте ме разбрали. Има ли някакъв друг начин да се постигне това?
Ако може да е по J2EE спецификация.
Re: EJB наследяване?!?
The following method enables using inheritance with CMP entity beans, straightforwardly and reliably. The steps are summarized here, and they will be explained afterwards.
Create a base bean class implementing EntityBean. Write bean subclasses extending base bean class.
Create a base local interface, extending EJBLocalObject. Create sub-interfaces extending base local interface.
Write a home interface for base class, extending EJBLocalHome. Write home interfaces for subclass, extending EJBLocalHome as usual. Don't extend home interface of base class.
In each subclass' create or postCreate method, call corresponding base class's create or postCreate method.
For each finder of base class, write a corresponding home method that will invoke finder in all subclasses. For each ejbSelect of the base class, write a regular method that will invoke ejbSelect in all subclasses.
Optional: Copy home method signatures to subclasses' home interfaces. Override home methods as required.
Set up vendor-specific table mapping.
[линк]
i pak povtariam ako razkarash XDocleta shte ti olekne

Create a base bean class implementing EntityBean. Write bean subclasses extending base bean class.
Create a base local interface, extending EJBLocalObject. Create sub-interfaces extending base local interface.
Write a home interface for base class, extending EJBLocalHome. Write home interfaces for subclass, extending EJBLocalHome as usual. Don't extend home interface of base class.
In each subclass' create or postCreate method, call corresponding base class's create or postCreate method.
For each finder of base class, write a corresponding home method that will invoke finder in all subclasses. For each ejbSelect of the base class, write a regular method that will invoke ejbSelect in all subclasses.
Optional: Copy home method signatures to subclasses' home interfaces. Override home methods as required.
Set up vendor-specific table mapping.
[линк]
i pak povtariam ako razkarash XDocleta shte ti olekne
Re: EJB наследяване?!?
Towa e mnogo hubawo deto si mi go pratil(naistina me izkefi), samoche ne mi wurshi mnogo rabota. Nikude ne pishe za relation-i. t.e tija tri bean-a w primera, nemoga da gi swurja kum edno pole ot drug bean.!!!... ili moga? towa maj nemoje da stane???
Re: EJB наследяване?!?
Pro4etoh postinga malko po diagonal,taka 4e ako ne sym razbral prawilno ne mi se syrdi:
Zasto ne naprawish slednoto neshto ,shte imash A and B ejb-ta
kato v B shte se mapwa i ObjectType(string - com.bla.objectType),taka ot A shte polu4awash samo B(relation),no pyk shte implementnesh biznes metodi na B koito shte ti wryshtat razli4ni domain obekti.
Zasto ne naprawish slednoto neshto ,shte imash A and B ejb-ta
kato v B shte se mapwa i ObjectType(string - com.bla.objectType),taka ot A shte polu4awash samo B(relation),no pyk shte implementnesh biznes metodi na B koito shte ti wryshtat razli4ni domain obekti.
Re: EJB наследяване?!?
e towa e wuprosa, zabrawi za A-to. Wuprosa e kak B-to da wrushta razlichni obekti.
Re: EJB наследяване?!?
e myrzi me da si 4eta postinga ama mislq 4e kazah
B-to shte mu implementnesh biznes metodi(malko dyrvodelsko ama raboti) koito wryshtat razli4ni domain objecti wyz osnova na ObjectType tip string w bazata
BaseGz B.getGz(){
if ( type.equals("net.gz")) {
result = constructGz();
}
}
BaseGz constructGz(){
Gz result = new Gz( getId() ); //getId - set/get persisten method
result.setKosmat( getKosmat() ); //set/get Kosmat - persistent method
return result;
}
B-to shte mu implementnesh biznes metodi(malko dyrvodelsko ama raboti) koito wryshtat razli4ni domain objecti wyz osnova na ObjectType tip string w bazata
BaseGz B.getGz(){
if ( type.equals("net.gz")) {
result = constructGz();
}
}
BaseGz constructGz(){
Gz result = new Gz( getId() ); //getId - set/get persisten method
result.setKosmat( getKosmat() ); //set/get Kosmat - persistent method
return result;
}