Ben yok zaman insertOrUpdate
ekler bir yöntem Entity
var ya da varsa güncelleyin. Bunu etkinleştirmek için findByIdAndForeignKey
, eğer null
eklemezse, güncellemeliyim. Sorun, var olup olmadığını nasıl kontrol edebilirim? Ben de denedim getSingleResult
. Ama eğer bir istisna atarsa
public Profile findByUserNameAndPropertyName(String userName, String propertyName) {
String namedQuery = Profile.class.getSimpleName() + ".findByUserNameAndPropertyName";
Query query = entityManager.createNamedQuery(namedQuery);
query.setParameter("name", userName);
query.setParameter("propName", propertyName);
Object result = query.getSingleResult();
if (result == null) return null;
return (Profile) result;
}
ama getSingleResult
atar Exception
.
Teşekkürler
getSingleResult()
" Bu kaydın var olduğundan kesinlikle eminim. Olmazsa vur beni " gibi durumlarda kullanılır .null
Bu yöntemi her kullandığımda test etmek istemiyorum çünkü geri vermeyeceğinden eminim . Aksi takdirde çok sayıda kazan plakası ve savunma programlamasına neden olur. Ve eğer kayıt gerçekten yoksa (varsaydığımızın tersi gibi), daha sonra birkaç satıraNoResultException
kıyasla çok daha iyidirNullPointerException
. Tabii ki iki sürümügetSingleResult()
olması harika olurdu, ama bir tane almak zorunda