Sziasztok!
Próbáltam kideríteni egy dolgot, de sehol nem találtam erre vonatkozóan semmit, ezért kérnélek meg benneteket segítsetek feltárni a szemem. Az állás a következő. Van egy Account entitásom, ami tartalmaz egy AccountData entitást. SOAP service keresztül ellenőrzöm, hogy van-e jogosultsága a usernek a belépéshez, viszont a SOAP service nem adja vissza csak az Accountot.
így működik csodálatosan:
Service
//...
@EJB
private AccountSoapServiceLocal ejbRef;
@WebMethod(operationName = "login")
public Account login(@WebParam(name = "email") String email, @WebParam(name = "password") String password) {
Account account = ejbRef.login(email, password);
account.setAccountData(null);
return account;
}
//...
SessionBean
//...
public Account login(String email, String password) {
Account account = new Account();
try {
Account checkAccount = this.accountHandler.getAccountByEmail(email);
if (checkAccount.getAccountIsActive() && checkAccount.getPassword().equals(Digest.MD5(password))) {
account = checkAccount;
//...
}
} catch (Exception e) {}
return account;
}
//...
Ellenben hogyha a account.setAccountData(null); parancsot a SessionBeanben adom ki akár a return account; előtt, tehát nem mergelem az EntityManagerrel, akkor vannak helyzetek, amikor elszáll, és mindeféle EJBException meg EJBTransactioRollbackException (vagy mi) exceptionoket dob null-os messagekkel. Lehet, hogy én tudok valamit rosszul, de nem úgy van, hogy amíg nem mergelem az entitást, addig szabadon módosíthatom.
Köszönöm a segítő válaszokat.