LinkedBlockingQueue가 있는데 모든 요소를 데이터베이스에 저장하고 싶습니다. 나는 하나씩 그것을 구할 수 있다는 것을 안다 :Play JPA에서 개체 목록을 저장하는 방법
그러나 나는 그것이 모든 요소들을 반복하고 각각을 위해 새로운 연결을해야한다는 것을 의미한다. 한 번에 전체 목록을 삽입 할 수 있습니까?
LinkedBlockingQueue가 있는데 모든 요소를 데이터베이스에 저장하고 싶습니다. 나는 하나씩 그것을 구할 수 있다는 것을 안다 :Play JPA에서 개체 목록을 저장하는 방법
그러나 나는 그것이 모든 요소들을 반복하고 각각을 위해 새로운 연결을해야한다는 것을 의미한다. 한 번에 전체 목록을 삽입 할 수 있습니까?
재생 1.x에서 서버가 요청을 받으면 play/jpa가 데이터베이스 트랜잭션을 엽니 다. 이 트랜잭션은 잘못된 것이 있으면 자동으로 롤백되고, 그렇지 않으면 응답이 클라이언트에 전송 될 때 자동으로 커밋됩니다.
따라서 JPA 엔티티를 순환하여 하나씩 차례로 save()를 호출하더라도 동일한 트랜잭션에서 모두 동일한 연결로 실행됩니다.
나는 Play 2에서 같은 방식으로 작동한다고 생각 하겠지만 정직하게도 나는 모른다.
간단한 대답은 아니오가 아닙니다. 한 줄 아래로 모든 개별 개체에 대한 삽입 쿼리를 실행해야합니다.
각 삽입에 대해 새 연결을 만들 필요는 없습니다. 각 반복에서 동일한 연결에 연결 및 파이어 삽입을 만들어야합니다.
MySQL에는 한번에 여러 행을 삽입하는 것과 같은 JPA가 없습니까? 여러 행을 삽입 할 수 있기 때문에 쿼리를 한 번에 하나의 행을 삽입하는 것에 반대하는 속도가 훨씬 빨라집니다. –
this question이 더 있습니다. 기본 DB에서 원하는 것을 수행하는 방법을 알고 있다면 네이티브 쿼리 (EntityManager를 통해 만들 수 있음)를 사용할 수도 있습니다.
모든 요소를 반복하고 save()를 호출 할 수 있습니다. 그러나 매번 새로운 연결을 만들지는 않습니다. 재생중인 트랜잭션은 HTTP 연결에 바인딩됩니다. –