Chúng tôi mở các giao dịch ở chế độ chỉ đọc và sau đó chuyển đổi nó sang chế độ ghi vì các kết nối chỉ đọc sẽ không thành vấn đề như với salve DB.
Chúng tôi ghi đè HibernateTemplate lớp và tạo các phương thức để tạo phiên ở chế độ ghi
public final void writeEnabled(){
getSession().doWork(jdbcWorkWriteEnabled);
}
public final void writeDisabled(boolean flush){
if(flush)
flush();
getSession().doWork(jdbcWorkWriteDisabled);
}
public static final void writeEnabled(Session session){
session.doWork(jdbcWorkWriteEnabled);
}
public static final void writeDisabled(boolean flush,Session session){
if(flush)
session.flush();
session.doWork(jdbcWorkWriteDisabled);
}
final static Work jdbcWorkWriteEnabled = new Work(){
public void execute(Connection connection) throws SQLException {
connection.setReadOnly(false);
}
};
final static Work jdbcWorkWriteDisabled = new Work(){
public void execute(Connection connection) throws SQLException {
connection.setReadOnly(true);
}
};
Trong logic ứng dụng trước khi ghi, chúng tôi kiểm tra
Kết nối đang ở chế độ ghi sau đó chỉ cần ghi.
Nếu kết nối chỉ đọc thì trước tiên hãy đặt nó ở chế độ ghi, thực hiện thao tác ghi và một lần nữa đưa nó trở lại chế độ chỉ đọc.
>