나는 여러 도메인 클래스가있는 Grails 프로젝트를 가지고 있으며, 그 안에 하나의 save() 만 있으면 가능한 한 재사용 가능한 서비스로 만들고 싶습니다. 이 작업을 시도하고 수행하려면 프로젝트에서 다음을 수행했습니다.Grails 재사용 가능한 도메인 객체 저장 서비스
//PersistenceService.groovy
@Transactional
class PersistenceService {
def create(Object object) {
object.save flush: true
object
}
// BaseRestfulController
class BaseRestfulController extends RestfulController {
def persistenceService
def save(Object object) {
persistenceService.create(object)
}
// BookController는
class BookController extends BaseRestfulController {
private static final log = LogFactory.getLog(this)
static responseFormats = ['json', 'xml']
BookController() {
super(Book)
}
@Transactional
def save(Book book) {
log.debug("creating book")
super.save(book)
}
그래서 기본적으로 내가 예를 들어, 저자에 대한 도메인의 무리가 등 각 bookController와 비슷한 자체 컨트롤러가 있습니다. 위와 같이 시도하는 것처럼 지속성을 위해 서비스를 재사용 할 수있는 방법이 있습니까?
내가 비슷한 일을하고 있어요
나는 할 수 있다고 생각하지만 당신은 당신의 BaseRestfulController 클래스에 (def 객체)를 생성하기위한 create (Object 객체)와 save (defobject)라는 save (Object 객체)의 서명을 변경해야합니다. –
'def'는 메소드 서명의'Object' 또는 타입 정보와 동일합니다. 3 개의 메소드는 정확히 같습니다 :'create (o)'==='create (Object o)'==='create (def o)' – injecteer
@ user2816352 여기서 달성하고자하는 것을 이해하지 못합니다. – injecteer