Al lavoro mi sono imbattuto in un metodo. Ha creato una query e ha restituito una stringa in base al risultato della query, ad esempio de ID di un cliente. Se la query non ha restituito un singolo cliente, restituisce un valore null. Altrimenti, restituirebbe una stringa con l'ID di loro. Sembrava questo:
String error = getOwners();
if (error != null) {
throw new Exception("Can't delete, the flat is owned by: " + error);
}
...
Ignorando il fatto che getCustomers () restituisce un valore null quando invece dovrebbe restituire una stringa vuota, qui stanno accadendo due cose. Controlla se l'appartamento è di proprietà di qualcuno e quindi restituisce.
Penso che una logica più leggibile sarebbe quella di fare questo:
if (isOwned) {
throw new Exception("Can't delete, the flat is owned by: " + getOwners());
}
...
Il problema è che il primo modo fa con una query quello che faccio con due query al database.
Quale sarebbe una buona soluzione per un buon design ed efficienza?