2016-08-16 37 views
1

我們假設我使用spring-data-jpa:1.9.4.RELEASE,其中Spring 4.2.5.RELEASE堆棧和Hibernate 5.1.0.Final。當我有這樣如何在持久化實體時找出Spring Data使用的SQL語句

@Repository 
public interface MyObjectRepository extends JpaRepository<MyObject, String> { 

} 

一個倉庫,我可以堅持的實體是這樣的:

@Autowired 
private MyObjectRepository repository; 

public void modifyMyObject(String id) { 
    MyObject obj = repository.findOne(id); 
    obj.setValue("anotherValue"); 
    repository.save(obj); 
} 

現在我需要列出正在使用這個應用程序的所有SQL。

我試圖啓用hibernate.show-sql屬性,但似乎只有查詢SQL被記錄。找不到更新SQL。

我如何知道用於保存實體的確切更新SQL?

+1

這很奇怪。 'show-sql'顯示所有正在創建的sql。插入和更新。 – Apostolos

回答

0

它是一個彈簧引導項目嗎?如果是這樣,在你的applications.yml你可以改變日誌記錄設置休眠,它會記錄查詢:

logging: 
    level: 
    org.hibernate.SQL: DEBUG 
    org.hibernate.type: DEBUG