imkepo:
イムは、現在、新しい情報を追加する前に、私のテーブルをきれいにするために、標準的なjparepositoryメソッドrepository.deleteAll()を使用します。表5のカラムそれぞれに8300個の行から成ります。それは、標準repository.saveAll(リスト)を使用して、それらを入れて1-3秒かかりながら、現在、彼らはすべて削除されますし、約80秒を取っています。これを行うために、よりeffecient方法はありますか?表から削除を持つSQLでデータを手動で削除すると、0,1秒かかります。MySQLデータベースを使用します。データを入れてからログインし 削除からログ。
SadmirD:
たとえば、あなたのサービス・インターフェースで:
public interface MyTableInterface {
//...
void truncateMyTable();
}
(とあなたのサービスの実装で@Autowired
myTableRepository):
public class MyTableImpl implements MyTableService {
// other methods, @Autowiring, etc
@Override
@Transactional
public void truncateMyTable() {
myTableRepository.truncateMyTable();
}
}
リポジトリで、
public interface MyTableRepository extends JpaRepository<MyTable, Long> {
//....
@Modifying
@Query(
value = "truncate table myTable",
nativeQuery = true
)
void truncateMyTable();
}
編集:また気づき@Transactional
、サービスimplemntation層の上に代わりにDAO /リポジトリ層の上に配置します