>
> James Hughes | Senior Software Engineer | Kainos | M: +353 (0)877 931 634 |
j.hughes@...
>
> P Please consider the environment and do not print this mail unless necessary
>
> ________________________________
>
> From: Jean-Noël Rivasseau [mailto:
elvanor@...]
> Sent: Thu 15/05/2008 10:12
> To:
user@...
> Subject: Re: [grails-user] Adding Unqiueness Constraint To List
>
>
>
> Hi,
>
> I am also wondering myself if the validation code cascades, I am not
> sure of this. Anyway you are probably doing things wrong - as the
> uniqueness constraint you impose means that there cannot be two tags
> with same name either - whereas you probably want to allow tags with
> identical names if they belong to different snippets.
>
> I think you would need to write custom validation code to check if two
> tags within a snippet have the same name. There's probably no built in
> stuff to check that.
>
> On Thu, May 15, 2008 at 11:05 AM, James Hughes <
J.Hughes@...> wrote:
>> Actually apologies it seems I was doing something wrong.
>>
>> With the code below you can add the same Tag twice...
>>
>> def snippet = new Snippet(
>> title:'Success Test',
>> category:'dummy',
>> code:"Simple Test",
>> tags:[new Tag(name:"test01")]
>> )
>>
>> assert snippet.validate() == true
>> snippet.addToTags(new Tag(name:"test02"))
>> assert snippet.validate() == true
>> snippet.addToTags(new Tag(name:"test04"))
>> assert snippet.validate() == true
>> snippet.addToTags(new Tag(name:"test04"))
>> assert snippet.validate() == true
>> snippet.addToTags(new Tag(name:"test04"))
>> assert snippet.validate() == true
>> snippet.addToTags(new Tag(name:"test04"))
>> assert snippet.validate() == true
>> snippet.addToTags(new Tag(name:"test04"))
>> assert snippet.validate() == true
>>
>> However if i create the Tag object first only a single unqiue entry is added for Tag(name:"test04"). Now I realise the code above creates 5 DIFFERENT Tag objects with the name of test04 but I was wondering why the unique constraint in Tag doesn't fail during validation? I assume this is expected behaviour but I would like to know why? Does the code not cascade constraints?
>>
>> Thanks
>>
>> James Hughes | Senior Software Engineer | Kainos | M: +353 (0)877 931 634 |
j.hughes@...
>>
>> P Please consider the environment and do not print this mail unless necessary
>>
>> ________________________________
>>
>> From: James Hughes [mailto:
J.Hughes@...]
>> Sent: Thu 15/05/2008 09:38
>> To:
user@...
>> Subject: [grails-user] Adding Unqiueness Constraint To List
>>
>>
>>
>> Hello,
>>
>> I am going to try and explain this as best I can. I have 2 domain classes Snippet and Tag - they are reated by a Many-to-Many relationship -- they look like this
>>
>> class Snippet {
>> static hasMany = [tags:Tag]
>>
>> String title
>> String description
>> String category
>> String code
>>
>> static constraints = {
>> title(blank:false, nullable:false, maxSize:30)
>> description(blank:true, nullable:true, maxSize:300)
>> category(blank:false, nullable:false)
>> code(blank:false, nullable:false)
>> tags(size:1..10)
>> }
>> }
>>
>> And tag
>>
>> class Tag {
>>
>> static belongsTo = Snippet
>> static hasMany = [snippets:Snippet]
>>
>> String name
>>
>> static constraints = {
>> name(unique:true, blank:false, nullable:false)
>> }
>>
>> boolean equals (Object other) {
>> name.equals(other.name)
>> }
>> }
>>
>> What I am trying to do is add a constraint to the Snippet domain class so that you can't add the same Tag object twice. I am pretty unsure of how to do this. Can anyone offer assistance?
>>
>> Thanks
>>
>> James Hughes | Senior Software Engineer
>>
>> P Please consider the environment and do not print this mail unless necessary
>>
>> ---------------------------------------------------------------------
>> To unsubscribe from this list, please visit:
>>
>>
http://xircles.codehaus.org/manage_email>>
>>
>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe from this list, please visit:
>>
>>
http://xircles.codehaus.org/manage_email>>
>>
>
> ---------------------------------------------------------------------
> To unsubscribe from this list, please visit:
>
>
http://xircles.codehaus.org/manage_email>
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe from this list, please visit:
>
>
http://xircles.codehaus.org/manage_email>
>