나는 해결책에 매우 가깝지만 아무 것도 여전히 잘못되어 도움을 얻을 수 있기를 바랍니다. 미리 감사드립니다.grails composite "유일한 제약", 어떻게?
class BoCustomer implements Serializable{
String firstName
String lastName
String emailID
Company company
}
그래서, 난 괜찮아 기본 키 = "ID"를 가지고 :
내가 좋아하는 고객의 도메인 모델을 가지고있다. 그래서 나는 다음과 같이 "하나의 회사 만의 유일한 이메일 주소"를 "검사"하는 고유 한 제약이 필요합니다. 동일한 전자 메일 삽입이 허용되어야하지만 다른 회사에 대해서만 허용되어야합니다. 삽입 ([email protected], 회사 ID : 1)과 삽입 ([email protected], 회사 ID : 1는) [email protected] (허용되지만 삽입되지, company-id : 1)를 입력하고 ([email protected], company-id : 2)를 삽입 할 수 있습니다.
그래서 내가 지금까지 시도 : ("좋은"것 같다,하지만 내가 원하는 정확히 무엇을)static mapping = {
id column: "customer_id", generator: "identity"
emailcompany composite: ['emailID', 'company'], unique: true
}
하지만 다른 열을 원하지 않는, 내 시도에 "라는 emailcompany "-하지만 고유 제한과 같은 것이 필요합니다.
안녕하세요 Kaleb, 답변 해 주셔서 감사합니다. 죄송합니다. 나는 당신의 코드를 시도했지만 동일한 회사 id를 가진 동일한 이메일을 두 번 이상 추가 할 수있다 :-( – grailsInvas0r
.save()를 호출하기 전에 BoCustomer 인스턴스에서 .validate()를 실행 하는가? 그리고 if –
예 .save()를 호출하기 전에 .validate()를 실행합니다. 그리고 "true"를 반환합니다. 예, 디버거 중단 점과 테스트 변수로 검사했습니다. - 불행히도 true를 반환합니다. - \ – grailsInvas0r