Ben yok zaman insertOrUpdateekler bir yöntem Entityvar ya da varsa güncelleyin. Bunu etkinleştirmek için findByIdAndForeignKey, eğer nulleklemezse, 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 getSingleResultatar Exception.
Teşekkürler
getSingleResult()" Bu kaydın var olduğundan kesinlikle eminim. Olmazsa vur beni " gibi durumlarda kullanılır .nullBu 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ıraNoResultExceptionkıyasla çok daha iyidirNullPointerException. Tabii ki iki sürümügetSingleResult()olması harika olurdu, ama bir tane almak zorunda