im sử dụng spring + hibernate cho ứng dụng dành cho máy tính để bàn.Trường hợp và cách xử lý các trường hợp ngoại lệ mùa xuân + hibernate?
Tôi đang cố gắng để xây dựng nó với một thực hiện lớp, vì vậy tôi có:
GUI lớp --call -> lớp Service --call - lớp> DAO
Một nhỏ ví dụ để exaplain tốt hơn tình hình của tôi:
// In GUI layer
private void actionPerformed(ActionEvent evt){
addUser();
}
private void addUser(){
// Check gui validation for user inputs
if(inputIsValid()){
String username=nameText.getText();
String pass=passText.getText();
//Now call service layer
userService.createUser(username, pass);
// Now here i want to show a message to user like
// "Operation successful" or "Operation failed"
// or more sofisticated message like "User with same name already exists"
}
}
// Service layer
@Transactional
public void createUser(String name, String pass){
User user=new User(name, pass);
userDao.save(user);
}
// Another service layer example,
@Transactional
public boolean createUser(String name, String pass){
User user=new User(name, pass);
try{
userDao.save(user);
}
catch(Exception ex){
Log(ex);
return false;
}
return true;
// In this case GUI layer can know if save is succesful, but it can't know WHY
// the save is failed : some username? DB service shutdown? etc..
}
Vấn đề là: ai ném ngoại lệ và xử lý nó?
Tôi nghĩ DAO phải ném ngoại lệ đầu tiên và lớp dịch vụ truy cập lại nó, và cuối cùng là lớp giao diện xử lý ngoại lệ, vì vậy tôi có thể hiển thị thông báo cho người dùng, điều này có tốt không? Có một cách để xây dựng một số ExceptionHandler bằng cách sử dụng mùa xuân?
Cách tốt nhất để quản lý ngoại lệ bằng spring + hibernate là gì?
Cảm ơn.