5
Grails는 모든 도메인 클래스에서 삭제를 허용하지 않는 쉬운 방법이 있습니까? 오히려 무언가가 삭제 될 때마다 업데이트되는 각 도메인에 삭제 플래그가 있어야합니다.삭제 대신 Grails 업데이트
사실, 모든 list/show 메소드는 delete 플래그가 true 인 객체를 나타내지 않아야합니다.
나는 모든 컨트롤러에서 모든 CRUD 메소드를 수동으로 편집하여이를 수행 할 수 있음을 알고 있지만, 어딘가에 플래그를 변경하여 모든 작업을 수행 할 수있는 Grails로 작업 할 때 약간의 작업이 필요합니다!
내 일반적인 목록 방법은 다음과 같습니다. 내 프로젝트의 거의 모든 목록 방법을 통해 사용자는 사용자 회사에만 속한 항목에 액세스 할 수 있습니다.
def list = {
params.max = Math.min(params.max ? params.int('max') : 10, 100)
def documentsList = Documents.createCriteria().list(params){
eq("company.id",session.companyId)
maxResults(params.max)
order("dateCreated","desc")
//firstResult(params.offset)
}
[documentsInstanceList: documentsList , documentsInstanceTotal: documentsList.getTotalCount() ]
}
저는이 동작을 원하는 도메인 클래스에 정적 속성을 추가하고 속성 집합이있는 클래스에 대해서만 삭제 및 목록을 재정의하지만 사실로. 그렇게하면 도메인 클래스의 인스턴스를 실제로 삭제할 수 있습니다. – erturne
좋은 지적. 또한 기본 삭제 메소드가 수정 된 도메인 클래스에서 hardDelete와 같은 새 메소드를 만드는 것이 좋습니다. –
좋은 아이디어. 또한 위에서 언급 한 정적 속성보다는 삭제 된 속성의 존재 여부 만 확인하면됩니다. 이것은 쉽게 Grails 플러그인으로 바뀔 수 있습니다. 소프트 삭제라고 부릅니다. – erturne