나는 데이터베이스에서 데이터를 수정할 수있는 웹 응용 프로그램을 만들고 있습니다. 사용자가 검색 기준 (예 : 이름 또는 성)을 지정한 다음 응용 프로그램은 주어진 기준에 따라 데이터를 검색하고 UI에 표시하며 사용자가 데이터를 편집하고 '저장'버튼을 누릅니다.GORM - 별도의 테이블에서 읽기/쓰기
현재 모든 수정 사항은 동일한 테이블 (person
)에 적용됩니다. 하지만 응용 프로그램의 논리를 변경해야합니다. 읽기 작업 (SELECT)은 하나의 테이블 (person
)에 적용해야합니다. 모두 작업 (INSERT, UPDATE 등)을 다른 테이블 (person_changes
)에 적용해야합니다. 다른 GORM 설정을 매핑하거나 조정하여 이러한 동작을 수행 할 수 있습니까? 또는 각 SELECT, INSERT, UPDATE에 대해 HQL 쿼리를 작성해야합니까?
지금 내 도메인 클래스는 다음과 같습니다
class Person implements Serializable {
private static final long serialVersionUID = -6023326467985259987L;
String id
String name
String surname
static mapping = {
datasource 'stuff'
table 'person'
cache true
version false
id column: 'id', generator: 'assigned'
}
static constraints = {
id(bindable: true, nullable: false, blank: false)
}
}
내가 Grails는 2.3.11 및 최대 절전 모드 3.6.10.19를 사용합니다.
[ 'stuff', 'main'] 두 DSN 다음 Person 클래스를 PersonEdit 클래스로 확장 한 다음이 'stuff'의 데이터 소스를 작성할 수 있습니다. 그런 다음 실제 데이터가 들어있는 데이터베이스 1 개와 실제 데이터 + 업데이트가 포함 된 데이터베이스 2 개로 자동 종료됩니다. 그러면 두 데이터베이스 모두를 비교할 수 있습니다. 실제로이 모든 광기 대신 참고 용으로 역사적인 테이블에있는 테이블 변경의 기록을 유지할 필요가있는 것 같습니다. – Vahid