“org.mise en veille prolongée.ObjectNotFoundException: Pas de ligne avec l'identifiant donné existe”, mais il n'existe
Je suis de l'utilisation d'hibernate pour mon service web.
Je suis en mesure de faire la liste de tous les enregistrements, mais ne parvenez pas à obtenir un seul.
Le tableau contient:
ID (VARCHAR) VALUE(BIT)
celiac 1
rate 1
suggestions 0
L'erreur affichée est:
org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.hibernate.ObjectNotFoundException: No row with the given identifier exists: [com.pfc.restaurante.models.Device#id="xxxxxx"]
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:894)
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:778)
javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
Et le code principal:
@JsonAutoDetect
@Entity
@Table(name = "SETTINGS")
public class Settings implements Serializable{
@Id
@Column(name="ID")
private String id;
@Column(name="VALUE", nullable=false)
private boolean value;
(...)
}
//////////////////7
@Controller
@RequestMapping("/settingsService")
public class SettingsServiceController {
@Autowired
SettingsService settingsService;
@RequestMapping(value = "/{id}", method = RequestMethod.GET)
public @ResponseBody Settings find(@PathVariable("id") String id){
return settingsService.find(id);
}
(...)
}
J'ai lu partout qu'il pourrait être parce que DB incompatibilité avec mon entité (certains nullable = true quand il ne devrait pas), mais je l'ai vérifié déjà et il n'y a pas une telle chose.
Quelqu'un pourrait-il me prêter un coup de main?
Merci d'avance!
- C'est votre
Settings
de la classe et de l'exception renvoie àDevice
classe. Nous montrer le vrai journal (avec une vraie identité, et pasxxxxx
) , Appareil de table et de classe de Périphérique. - Je suis désolé, mon erreur. Toutefois, des erreurs ont été les mêmes pour Appareil et les Paramètres, et xxxx a été un véritable test ID :). La Solution ci-dessus a été couronnée de succès grâce à Antonio.
Vous devez vous connecter pour publier un commentaire.
Votre erreur fait référence à une entité du nom de "Dispositif" mais votre code montre une entité "Paramètres". Sont-ils les mêmes?
J'ai vu cette erreur uniquement dans 2 cas:
La principale entité n'existe pas dans la DB et de la Session.load() est utilisé. Session D'Utilisation.get() et vérifier la valeur null à la place.
Des relations brisées. Considérez ceci: EntityA possède un rapport à EntityB. EntityB est supprimé tandis que le FK EntityA est laissé intact. Donc, chaque fois que HB essaie de charger le lien A-B, l'erreur se produit. Cela peut se produire lors de l'exécution d'une recherche normale ou même lors de l'enregistrement/rafraîchissant EntityA (HB doit actualiser le lien).