Spring在TransactionDefinition接口中定義四種屬性,以供PlatfromTransactionManager使用, PlatfromTransactionManager是spring事務管理的核心接口。
TransactionDefinition接口中定義五個隔離級別:
1拾碌、ISOLATION_DEFAULT
是PlatfromTransactionManager默認的隔離級別,使用數據庫默認的事務隔離級別.另外四個與JDBC的隔離級別相對應;
2登淘、ISOLATION_READ_UNCOMMITTED
是事務最低的隔離級別,它充許別外一個事務可以看到這個事務未提交的數據煌集。這種隔離級別會產生臟讀,不可重復讀和幻像讀捌省。
3苫纤、ISOLATION_READ_COMMITTED ?
保證一個事務修改的數據提交后才能被另外一個事務讀取。另外一個事務不能讀取該事務未提交的數據。這種事務隔離級別可以避免臟讀出現卷拘,但是可能會出現不可重復讀和幻像讀喊废。
4、ISOLATION_REPEATABLE_READ ?
這種事務隔離級別可以防止臟讀栗弟,不可重復讀污筷。但是可能出現幻像讀。它除了保證一個事務不能讀取另一個事務未提交的數據外乍赫,還保證了避免下面的情況產生(不可重復讀)瓣蛀。
5、ISOLATION_SERIALIZABLE 這是花費最高代價但是最可靠的事務隔離級別雷厂。事務被處理為順序執(zhí)行惋增。除了防止臟讀,不可重復讀外改鲫,還避免了幻像讀诈皿。