{"id":277,"date":"2025-02-22T10:02:57","date_gmt":"2025-02-22T09:02:57","guid":{"rendered":"https:\/\/www.schoenberg-solutions.de\/arndtblog\/?p=277"},"modified":"2025-02-22T10:02:58","modified_gmt":"2025-02-22T09:02:58","slug":"entitaeten-aus-dem-jpa-cache-entfernen","status":"publish","type":"post","link":"https:\/\/www.schoenberg-solutions.de\/arndtblog\/?p=277","title":{"rendered":"Entit\u00e4ten aus dem JPA Cache entfernen"},"content":{"rendered":"\n<p>Bei bestimmten Entwurfsmustern kann es vorkommen, dass spezille Entit\u00e4ten f\u00fcr die gesamte Anwendung aus dem Cache genommen werden m\u00fcssen, um einen Reload beim n\u00e4chsten Zugriff sicherzustellen. Ein<\/p>\n\n\n\n<p><code>entityManager.detach(entity)<\/code><\/p>\n\n\n\n<p>entfernt eine bestimmte Entit\u00e4t aus dem <strong>Persistence Context<\/strong> des <strong>aktuellen <\/strong><code>EntityManager<\/code>. Nach dem <code>detach()<\/code>-Aufruf ist die Entit\u00e4t nicht mehr verwaltet, d. h. \u00c4nderungen an diesem Objekt werden nicht mehr automatisch synchronisiert. <\/p>\n\n\n\n<p>Bei dieser L\u00f6sung wird nur der aktuelle em betrachtet. Die Entit\u00e4t kann im Cache verbleiben. F\u00fcr ein &#8222;globales&#8220; Entfernen muss die Entit\u00e4t aus dem Cache genommen werden.<\/p>\n\n\n\n<p><code>this.em.getEntityManagerFactory().getCache().evict(EntityClass.class, pk);<\/code><\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Bei bestimmten Entwurfsmustern kann es vorkommen, dass spezille Entit\u00e4ten f\u00fcr die gesamte Anwendung aus dem Cache genommen werden m\u00fcssen, um einen Reload beim n\u00e4chsten Zugriff sicherzustellen. Ein entityManager.detach(entity) entfernt eine bestimmte Entit\u00e4t aus dem Persistence Context des aktuellen EntityManager. Nach dem detach()-Aufruf ist die Entit\u00e4t nicht mehr verwaltet, d. h. \u00c4nderungen an diesem Objekt werden [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[12,4],"tags":[],"class_list":["post-277","post","type-post","status-publish","format-standard","hentry","category-java","category-jee"],"_links":{"self":[{"href":"https:\/\/www.schoenberg-solutions.de\/arndtblog\/index.php?rest_route=\/wp\/v2\/posts\/277","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.schoenberg-solutions.de\/arndtblog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.schoenberg-solutions.de\/arndtblog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.schoenberg-solutions.de\/arndtblog\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.schoenberg-solutions.de\/arndtblog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=277"}],"version-history":[{"count":1,"href":"https:\/\/www.schoenberg-solutions.de\/arndtblog\/index.php?rest_route=\/wp\/v2\/posts\/277\/revisions"}],"predecessor-version":[{"id":278,"href":"https:\/\/www.schoenberg-solutions.de\/arndtblog\/index.php?rest_route=\/wp\/v2\/posts\/277\/revisions\/278"}],"wp:attachment":[{"href":"https:\/\/www.schoenberg-solutions.de\/arndtblog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=277"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.schoenberg-solutions.de\/arndtblog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=277"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.schoenberg-solutions.de\/arndtblog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=277"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}