반응형
JPA Cache: 보기의 테이블이 업데이트된 후 db 보기에서 업데이트된 결과를 가져오는 방법
db(mariadb)에서 나는 여러 테이블의 조인에서 오는 데이터의 선택으로 정의된 뷰를 가지고 있습니다.
CREATE VIEW `obiettivideco` AS
SELECT
`codici`.`id` AS `idc`,
`codici`.`codice` AS `codice`,
`codici`.`sub` AS `sub`,
`codici`.`descrizione` AS `descrizionec`,
`eo`.`id` AS `ide`,
`eo`.`Descrizione` AS `descrizionee`,
`obiettivi`.`id` AS `ido`,
`obiettivi`.`inizio` AS `inizio`,
`obiettivi`.`fine` AS `fine`,
`obiettivi`.`valore` AS `valore`
FROM (
(`obiettivi` JOIN `eo`
ON((`obiettivi`.`eo` = `eo`.`id`))) JOIN `codici`
ON((`obiettivi`.`codice` = `codici`.`id`))
);
그 계층 위에서 나는 MVC 패턴의 모델을 갖기 위해 테이블(그리고 뷰에서도)로부터 엔티티를 생성했습니다.그런 다음 관리되는 콩으로 만든 컨트롤러에 보기(JSF)가 위의 보기를 선택할 수 있도록 하는 몇 가지 논리를 썼습니다.데이터를 수정해야 할 때 테이블 엔티티(예: 테이블 엔티티)의 도움으로 변경 사항이 지속됩니다.
em.getTransaction().begin();
em.persist(obiettivo);
em.getTransaction().commit();
여기서 오비에티보는 클래스 오비에티비의 개체이며, 이는 다시 오비에티비표를 모델링하는 개체입니다.문제는 오비에티비데코 선택의 업데이트를 표시하려고 하면 발생합니다. jpa 캐시는 오비에티보의 변화가 오비에티비데코를 구식으로 만들 것이라는 것을 모르는 것 같습니다.
문제를 해결한 엔티티 관리자 새로 고침과 관련된 답변을 찾기까지 며칠을 보냈습니다.
q.setHint(QueryHints.REFRESH, true);
obiettivideco = (List<Obiettivideco>) q.getResultList();
나의 낮은 평판 때문에 나는 그 답변에 찬성표를 던질 수 없었기 때문에 다른 사람이 두통을 피할 수 있기를 바라며 이미 대답한 질문을 올립니다.
언급URL : https://stackoverflow.com/questions/43356457/jpa-cache-how-do-you-get-updated-results-from-a-db-view-after-a-table-in-view-i
반응형
'source' 카테고리의 다른 글
select insertion으로 어떻게 하는지 궁금합니다. (0) | 2023.09.26 |
---|---|
Python에서 SQL 문에 변수를 사용하는 방법은? (0) | 2023.09.26 |
MySQL에서 조인에 인덱스를 사용하도록 강제하는 구문은 무엇입니까? (0) | 2023.09.26 |
ASP.NET / Oracle 문제:TNS에서 지정한 연결 식별자를 확인할 수 없습니다. (0) | 2023.09.26 |
C에서 카레를 할 수 있는 방법이 있습니까? (0) | 2023.09.26 |