<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-2807538408803254147</id><updated>2024-10-24T18:42:15.881-07:00</updated><category term="Apps"/><category term="Articulos Grails"/><category term="CP introduccion Grails"/><category term="Clases de Dominio hasMany belongsTo"/><category term="Consola Grails"/><category term="Constraints"/><category term="Google"/><category term="Google Apps for Work"/><category term="Groovy Server Pages"/><category term="Guía de Referencia GRAILS - The Grails Framework - Reference Documentation"/><category term="REGH"/><category term="Work"/><category term="clase"/><category term="control"/><category term="dominio"/><category term="grails"/><category term="grails imagen base datos"/><category term="mysql"/><category term="restricciones Grails"/><title type='text'>Grails Facilito</title><subtitle type='html'>La búsqueda a terminado&#xa;&#xa;RICARDO EMMANUEL GUTIERREZ HERNANDEZ</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://grailsfacilito.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2807538408803254147/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://grailsfacilito.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>regh</name><uri>http://www.blogger.com/profile/10982628756721687344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>10</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2807538408803254147.post-219859737029926874</id><published>2014-11-05T15:44:00.000-08:00</published><updated>2014-11-05T15:44:01.296-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Apps"/><category scheme="http://www.blogger.com/atom/ns#" term="Google"/><category scheme="http://www.blogger.com/atom/ns#" term="Google Apps for Work"/><category scheme="http://www.blogger.com/atom/ns#" term="Work"/><title type='text'>Google Apps for Work</title><content type='html'>&lt;style&gt;
.gg .maia-button{background-color:#4173c9;background-image:-moz-linear-gradient(top,#5e8ee4,#4173c9);background-image:-webkit-linear-gradient(top,#5e8ee4,#4173c9);background-image:-webkit-gradient(linear,left top,left bottom,color-stop(0,#5e8ee4),color-stop(1,#4173c9));background-image:linear-gradient(top,#5e8ee4,#4173c9);border:0;-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;color:#fff;cursor:pointer;display:inline-block;font-family:arial,sans-serif;font-size:13px;font-weight:bold;line-height:1.54;padding:7px 12px;text-align:center;text-shadow:0 -1px 0 rgba(0,0,0,.08);text-decoration:none}.gg&gt;div{text-align:center;width:100%}
&lt;/style&gt;

&lt;br /&gt;
&lt;div class=&quot;gg&quot;&gt;
&lt;div class=&quot;logo&quot;&gt;
&lt;img alt=&quot;&quot; src=&quot;//www.google.com/work/apps/business/landing/partners/images/logo.png&quot; /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;strong&gt;What is Google Apps?&lt;/strong&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Google Apps is a cloud-based productivity suite that helps teams communicate, collaborate and get things done from anywhere and on any device. It&#39;s simple to set up, use and manage, so your business can focus on what really matters.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Millions of organizations around the world count on Google Apps for professional email, file storage, video meetings, online calendars, document editing and more.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;a href=&quot;https://www.youtube.com/watch?v=vNJUL92y9wo&quot;&gt;Watch a video&lt;/a&gt; or &lt;a href=&quot;https://static.googleusercontent.com/media/www.google.com/en/us/enterprise/apps/business/landing/partners/referral/email-assets/google_apps_datasheet.pdf&quot; target=&quot;_blank&quot;&gt;find out more here.&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;strong&gt;Here are some highlights:&lt;/strong&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;strong&gt;Business email for your domain&lt;/strong&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Looking professional matters, and that means communicating as you@yourcompany.com. Gmail’s simple, powerful features help you build your brand while getting more done.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;strong&gt;Access from any location or device&lt;/strong&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Check email, share files, edit documents, hold video meetings and more whether you’re at work, at home or in transit. You can pick up where you left off from a computer, tablet or phone.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;strong&gt;Enterprise-level management tools&lt;/strong&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Robust admin settings give you total command over users, devices, security and more. Your data always belongs to you, and it goes with you if you switch solutions.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;h2&gt;
&lt;a class=&quot;referral-href maia-button&quot; href=&quot;http://www.google.com/work/apps/business/landing/partners/referral/trial.html?utm_source=sign-up&amp;amp;utm_medium=referral&amp;amp;utm_campaign=apps-referral-program&amp;amp;utm_content=C3BUUCC&quot;&gt;Start free trial&lt;/a&gt;&lt;/h2&gt;
&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://grailsfacilito.blogspot.com/feeds/219859737029926874/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://grailsfacilito.blogspot.com/2014/11/google-apps-for-work.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2807538408803254147/posts/default/219859737029926874'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2807538408803254147/posts/default/219859737029926874'/><link rel='alternate' type='text/html' href='http://grailsfacilito.blogspot.com/2014/11/google-apps-for-work.html' title='Google Apps for Work'/><author><name>regh</name><uri>http://www.blogger.com/profile/10982628756721687344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2807538408803254147.post-4974190295327498037</id><published>2011-07-24T23:26:00.000-07:00</published><updated>2011-08-03T10:03:00.787-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Articulos Grails"/><title type='text'>Articulos Basicos de Grails</title><content type='html'>&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;&quot;&gt;Web -&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;&quot;&gt;&lt;a href=&quot;http://grails.org/Documentation&quot; style=&quot;color: #0000cc;&quot; target=&quot;_blank&quot;&gt;Grails Documentation&lt;/a&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;&quot;&gt;Articulos básicos para comenzar con Grails&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;&quot;&gt;por&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #96937d; font-family: &#39;Lucida Grande&#39;, Lucida, sans-serif; font-size: 13px;&quot;&gt;SpringSource&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;&quot;&gt;) ...&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: arial, sans-serif; font-size: x-small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: collapse;&quot;&gt;&lt;a href=&quot;http://grails.org/Documentation&quot;&gt;http://grails.org/Documentation&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://grailsfacilito.blogspot.com/feeds/4974190295327498037/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://grailsfacilito.blogspot.com/2011/07/articulos-basicos-de-grails.html#comment-form' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2807538408803254147/posts/default/4974190295327498037'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2807538408803254147/posts/default/4974190295327498037'/><link rel='alternate' type='text/html' href='http://grailsfacilito.blogspot.com/2011/07/articulos-basicos-de-grails.html' title='Articulos Basicos de Grails'/><author><name>regh</name><uri>http://www.blogger.com/profile/10982628756721687344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2807538408803254147.post-4355716070607102104</id><published>2011-07-19T01:51:00.000-07:00</published><updated>2011-07-19T01:51:20.283-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="CP introduccion Grails"/><title type='text'>CampusParty - Video - Introducción a Grails (ES)(MX)</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;iframe allowfullscreen=&#39;allowfullscreen&#39; webkitallowfullscreen=&#39;webkitallowfullscreen&#39; mozallowfullscreen=&#39;mozallowfullscreen&#39; width=&#39;420&#39; height=&#39;366&#39; src=&#39;https://www.youtube.com/embed/DsRzOyEQEqQ?feature=player_embedded&#39; frameborder=&#39;0&#39;&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;/div&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: xx-small;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: arial, sans-serif; font-size: xx-small; line-height: 18px;&quot;&gt;Desarrolladores - Introducción a Grails&lt;/span&gt;&lt;/div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: arial, sans-serif; font-size: xx-small; line-height: 18px;&quot;&gt;(Audiencia: Principiantes / Expone: Jose Juan Reyes Zuñiga)&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: arial, sans-serif; line-height: 18px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: xx-small;&quot;&gt;El desarrollo web en Java siempre se ha tildado de ser difícil, en el mundo del OpenSource se han creado alternativas que permiten incrementar la productividad de los desarrolladores como Rails. Java sin duda es la plataforma de elección para aplicaciones empresariales, nicho en el cual otras alternativas no tienen cabida. Sin embargo aprovechando que la plataforma Java soporta lenguajes de scripting como Groovy, se han creado el framework de desarrollo web Grails. Grails como framework OpenSource para Java, permite aprovechar toda la robustez de Java, la flexibilidad de Groovy y la simpleza de los principios Don&#39;t Repeat Yourself (DRY) y Convention Over Configuration (CoC).&lt;/span&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://grailsfacilito.blogspot.com/feeds/4355716070607102104/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://grailsfacilito.blogspot.com/2011/07/campusparty-video-introduccion-grails.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2807538408803254147/posts/default/4355716070607102104'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2807538408803254147/posts/default/4355716070607102104'/><link rel='alternate' type='text/html' href='http://grailsfacilito.blogspot.com/2011/07/campusparty-video-introduccion-grails.html' title='CampusParty - Video - Introducción a Grails (ES)(MX)'/><author><name>regh</name><uri>http://www.blogger.com/profile/10982628756721687344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2807538408803254147.post-8589677505594333317</id><published>2011-07-19T01:40:00.000-07:00</published><updated>2011-07-19T01:40:27.180-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Clases de Dominio hasMany belongsTo"/><title type='text'>Uso de belongsTo y hasMany - Clases de Dominio</title><content type='html'>&lt;h1 style=&quot;border-bottom-color: rgb(238, 238, 238); border-bottom-style: solid; border-bottom-width: 1px; font-family: Arial, Verdana, Tahoma; font-size: 1.2em; margin-left: 30px; margin-top: 50px;&quot;&gt;Uso de las Clases de Dominio&lt;/h1&gt;&lt;div&gt;En&amp;nbsp;Grails un dominio es una clase, ubicada en el directorio:&amp;nbsp;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: monospace; font-size: 12px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: #fff2cc;&quot;&gt;grails-app/domain&lt;/span&gt;.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;Una clase de dominio se crea con el comando:&amp;nbsp;&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: #cfe2f3; font-family: monospace; font-size: 12px; line-height: 12px; white-space: pre;&quot;&gt;grails create-domain-class Book.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: inherit;&quot;&gt;Se edita el archivo creado con el editor preferido.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;ejemplo:&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: courier, &#39;courier new&#39;, monospace; font-size: 12px; line-height: 12px; white-space: pre;&quot;&gt;&lt;pre style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;/pre&gt;&lt;pre style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: #fce5cd;&quot;&gt;class Book {
 &lt;span class=&quot;java-object&quot; style=&quot;color: #000088;&quot;&gt;String&lt;/span&gt; title
 Date releaseDate
 Author author
}&lt;/span&gt;&lt;/pre&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: inherit;&quot;&gt;El nombre de la clase, por defecto,&amp;nbsp;&lt;span class=&quot;hps&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;se&amp;nbsp;relacionan&amp;nbsp;con&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 16px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 16px;&quot;&gt;&lt;span class=&quot;hps&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;el nombre de tabla&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 16px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 16px;&quot;&gt;&lt;span class=&quot;hps&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;en minúsculas&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 16px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 16px;&quot;&gt;&lt;span class=&quot;hps&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;y&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 16px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 16px;&quot;&gt;&lt;span class=&quot;hps&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;separadas por guiones&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 16px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 16px;&quot;&gt;&lt;span class=&quot;hps&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;en lugar de m&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 16px;&quot;&gt;ayúsculas y minúsculas.&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 16px;&quot;&gt;&lt;span class=&quot;hps&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;Mientras que cada&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 16px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 16px;&quot;&gt;&lt;span class=&quot;hps&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;propiedad se asigna&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 16px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 16px;&quot;&gt;&lt;span class=&quot;hps&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;a las columnas individuales&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 16px;&quot;&gt;&lt;span class=&quot;&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: inherit;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 16px;&quot;&gt;&lt;span class=&quot;hps&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;Consulte la sección de&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;hps&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;guía&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;hps&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;de usuario en&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 15px;&quot;&gt;&lt;a class=&quot;guide&quot; href=&quot;http://grails.org/doc/1.0.x/guide/single.html#5. Object Relational Mapping (GORM)&quot;&gt;GORM&lt;/a&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 16px;&quot;&gt;&amp;nbsp;&lt;span class=&quot;hps&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;para más información.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: inherit;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 16px;&quot;&gt;&lt;span class=&quot;hps&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 16px;&quot;&gt;Creamos un aplicación en Grails&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 16px;&quot;&gt;abrimos la consola, escribimos el comando&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: #cfe2f3; font-size: 16px;&quot;&gt;grails create-app biblio&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;escribimos el comando &lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: #d9ead3;&quot;&gt;cd biblio &lt;/span&gt;para entrar a la aplicación&lt;/li&gt;
&lt;/ul&gt;&lt;/ul&gt;&lt;/div&gt;&lt;h1 style=&quot;border-bottom-color: rgb(238, 238, 238); border-bottom-style: solid; border-bottom-width: 1px; margin-left: 30px; margin-top: 50px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: arial, sans-serif; font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;div style=&quot;font-family: &#39;Times New Roman&#39;; font-size: medium; font-weight: normal;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Verdana, Tahoma; font-size: 19px; font-weight: bold;&quot;&gt;belongsTo&lt;/span&gt;&lt;/div&gt;&lt;/h1&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: inherit;&quot;&gt;Define una&amp;nbsp;relación&amp;nbsp;de &quot;Pertenece a&quot;,&amp;nbsp;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 16px;&quot;&gt;&lt;span class=&quot;hps&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;donde&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 16px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 16px;&quot;&gt;&lt;span class=&quot;hps&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;la clase especificada por&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 16px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 16px;&quot;&gt;&lt;span class=&quot;hps&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;belongsTo&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 16px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 16px;&quot;&gt;&lt;span class=&quot;hps&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;asume la propiedad&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 16px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 16px;&quot;&gt;&lt;span class=&quot;hps&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;de la relación.&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 16px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 16px;&quot;&gt;&lt;span class=&quot;hps&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;Esto tiene el efecto&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 16px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 16px;&quot;&gt;&lt;span class=&quot;hps&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;de&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 16px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 16px;&quot;&gt;&lt;span class=&quot;hps&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;controlar la forma en&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 16px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 16px;&quot;&gt;&lt;span class=&quot;hps&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;cascada de&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 16px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 16px;&quot;&gt;&lt;span class=&quot;hps&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;eliminaciones.&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 16px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 16px;&quot;&gt;&lt;span class=&quot;hps&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;En otras palabras,&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 16px;&quot;&gt;&lt;span class=&quot;hps&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;el lado de&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 16px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 16px;&quot;&gt;&lt;span class=&quot;hps&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;ser dueño de&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 16px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 16px;&quot;&gt;&lt;span class=&quot;hps&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;eliminaciones en cascada&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 16px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 16px;&quot;&gt;&lt;span class=&quot;hps&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;cuando&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 16px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 16px;&quot;&gt;&lt;span class=&quot;hps&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;el&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 16px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 16px;&quot;&gt;&lt;span class=&quot;hps&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;belongsTo&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 16px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 16px;&quot;&gt;&lt;span class=&quot;hps&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;se especifica&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 16px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 16px;&quot;&gt;&lt;span class=&quot;hps&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;en el lado&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 16px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 16px;&quot;&gt;&lt;span class=&quot;hps&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;inverso&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 16px;&quot;&gt;&lt;span title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 12px; white-space: pre;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;Creamos la clase de dominio con el comando:&amp;nbsp;&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: #cfe2f3; font-family: monospace; font-size: 12px; line-height: 12px; white-space: pre;&quot;&gt;grails create-domain-class Book&lt;/span&gt;&lt;/div&gt;&lt;div&gt;Se edita el archivo creado con el editor preferido, quedando de la siguiente manera:&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;div style=&quot;font-family: courier, &#39;courier new&#39;, monospace; font-size: 12px; line-height: 12px; white-space: pre;&quot;&gt;ejemplo:&lt;/div&gt;&lt;div style=&quot;font-family: courier, &#39;courier new&#39;, monospace; font-size: 12px; line-height: 12px; white-space: pre;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: #fce5cd; font-family: courier, &#39;courier new&#39;, monospace; font-size: 12px; line-height: 12px; white-space: pre;&quot;&gt;&lt;pre style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;class Book {
   &lt;span class=&quot;java-object&quot; style=&quot;color: #000088;&quot;&gt;String&lt;/span&gt; title
   &lt;span class=&quot;java-keyword&quot; style=&quot;color: #0000aa; font-weight: bold;&quot;&gt;static&lt;/span&gt; belongsTo = [author:Author]
}&lt;/pre&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 12px; white-space: pre;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 12px; white-space: pre;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: inherit;&quot;&gt;Crearemos el controlador de Book con el comando:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 12px; white-space: pre;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: #cfe2f3; font-family: monospace; font-size: 12px; line-height: 12px; white-space: pre;&quot;&gt;grails generate-controller Book&lt;/span&gt;&lt;/div&gt;&lt;div&gt;En&amp;nbsp;Grails el controlador esta ubicado en el directorio:&amp;nbsp;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: monospace; font-size: 12px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: #fff2cc;&quot;&gt;grails-app/controller&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: monospace; font-size: 12px;&quot;&gt;.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: inherit;&quot;&gt;quedando de la siguiente manera:&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: courier, &#39;courier new&#39;, monospace; font-size: 12px; line-height: 12px; white-space: pre;&quot;&gt;&lt;pre style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;class BookController {
   def scaffold = &lt;span class=&quot;java-keyword&quot; style=&quot;background-color: inherit; color: #0000aa; font-weight: bold;&quot;&gt;Book&lt;/span&gt;
}&lt;/pre&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: inherit;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 16px;&quot;&gt;&lt;span class=&quot;hps&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;En&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 16px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 16px;&quot;&gt;&lt;span class=&quot;hps&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;este ejemplo, la&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 16px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 16px;&quot;&gt;&lt;span class=&quot;hps&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;clase de&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 16px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 16px;&quot;&gt;&lt;span class=&quot;hps&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;libro&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 16px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 16px;&quot;&gt;&lt;span class=&quot;hps&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;se especifica que&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 16px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 16px;&quot;&gt;&lt;span class=&quot;hps&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;pertenece a la clase&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 16px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 16px;&quot;&gt;&lt;span class=&quot;hps&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;Autor&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 16px;&quot;&gt;&lt;span class=&quot;&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 16px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 16px;&quot;&gt;&lt;span class=&quot;hps&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;por lo tanto,&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 16px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 16px;&quot;&gt;&lt;span class=&quot;hps&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;cuando una instancia&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 16px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 16px;&quot;&gt;&lt;span class=&quot;hps&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;Autor&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 16px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 16px;&quot;&gt;&lt;span class=&quot;hps&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;se elimina&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 16px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 16px;&quot;&gt;&lt;span class=&quot;hps&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;también todos los&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 16px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 16px;&quot;&gt;&lt;span class=&quot;hps&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;casos&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 16px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 16px;&quot;&gt;&lt;span class=&quot;hps&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;relacionados&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 16px;&quot;&gt;&lt;span class=&quot;hps&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;con el&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 16px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 16px;&quot;&gt;&lt;span class=&quot;hps&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;Libro&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 16px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 16px;&quot;&gt;&lt;span class=&quot;hps&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;del Autor&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;h1 style=&quot;border-bottom-color: rgb(238, 238, 238); border-bottom-style: solid; border-bottom-width: 1px; font-family: Arial, Verdana, Tahoma; font-size: 1.2em; margin-left: 30px; margin-top: 50px;&quot;&gt;hasMany&lt;/h1&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: inherit;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 16px;&quot;&gt;&lt;span class=&quot;hps&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;Define&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 16px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 16px;&quot;&gt;&lt;span class=&quot;hps&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;una asociación uno&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 16px;&quot;&gt;&lt;span class=&quot;&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;-a-muchos&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 16px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 16px;&quot;&gt;&lt;span class=&quot;hps&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;entre dos clases.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;Creamos la clase de dominio con el comando:&amp;nbsp;&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: #cfe2f3; font-family: monospace; font-size: 12px; line-height: 12px; white-space: pre;&quot;&gt;grails create-domain-class Author&lt;/span&gt;&lt;/div&gt;&lt;div&gt;Se edita el archivo creado con el editor preferido, quedando de la siguiente manera:&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: inherit;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 16px;&quot;&gt;&lt;span class=&quot;hps&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: inherit;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 16px;&quot;&gt;&lt;span class=&quot;hps&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;ejemplo:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: #fce5cd; font-family: courier, &#39;courier new&#39;, monospace; font-size: 12px; line-height: 12px; white-space: pre;&quot;&gt;&lt;pre&gt;class Author {
   &lt;span class=&quot;java-object&quot; style=&quot;color: #000088;&quot;&gt;String&lt;/span&gt; name
   &lt;span class=&quot;java-keyword&quot; style=&quot;color: #0000aa; font-weight: bold;&quot;&gt;static&lt;/span&gt; hasMany = [books:Book]
}&lt;/pre&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: inherit;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 16px;&quot;&gt;&lt;span class=&quot;hps&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: inherit;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 16px;&quot;&gt;&lt;span class=&quot;hps&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 12px; white-space: pre;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: inherit;&quot;&gt;Crearemos el controlador de Author con el comando:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 12px; white-space: pre;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: #cfe2f3; font-family: monospace; font-size: 12px; line-height: 12px; white-space: pre;&quot;&gt;grails generate-controller Author&lt;/span&gt;&lt;/div&gt;&lt;div&gt;En&amp;nbsp;Grails el controlador esta ubicado en el directorio:&amp;nbsp;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: monospace; font-size: 12px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: #fff2cc;&quot;&gt;grails-app/controller&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: monospace; font-size: 12px;&quot;&gt;.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: inherit;&quot;&gt;quedando de la siguiente manera:&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: courier, &#39;courier new&#39;, monospace; font-size: 12px; line-height: 12px; white-space: pre;&quot;&gt;&lt;pre style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;class AuthorController {
   def scaffold = &lt;span class=&quot;java-keyword&quot; style=&quot;background-color: inherit; color: #0000aa; font-weight: bold;&quot;&gt;Author&lt;/span&gt;
}&lt;/pre&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: inherit;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 16px;&quot;&gt;&lt;span class=&quot;hps&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 16px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: inherit;&quot;&gt;&lt;span class=&quot;hps&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;En este ejemplo&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;hps&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;se define una&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;hps&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;relación de uno&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;hps&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;a varios entre&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;hps&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;la clase&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;hps&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;Autor&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;hps&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;y de la clase&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;hps&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;Libro&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;hps&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;(un autor&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;hps&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;tiene muchos libros&lt;/span&gt;&lt;span title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;).&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;hps&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;Por defecto&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;hps&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;GORM&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;hps&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;creará una propiedad&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;hps&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;de&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;hps&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;tipo&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;hps&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;java.util.Set&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;hps&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;utilizando&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;hps&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;la clave&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;hps&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;dentro de la definición&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;hps&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;del mapa&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;hps&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;hasMany&lt;/span&gt;&lt;span title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;.&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;hps&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;Por ejemplo, la&lt;/span&gt;&lt;span class=&quot;hps&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;&amp;nbsp;definición:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 16px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: inherit;&quot;&gt;&lt;span class=&quot;hps&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: courier, &#39;courier new&#39;, monospace; font-size: 12px; line-height: 12px; white-space: pre;&quot;&gt;&lt;pre&gt;&lt;span class=&quot;java-keyword&quot; style=&quot;background-color: inherit; color: #0000aa; font-weight: bold;&quot;&gt;static&lt;/span&gt; hasMany = [books:Book]&lt;/pre&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;Corremos la aplicación:&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: #cfe2f3;&quot;&gt;grails run-app&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;Referencia:&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;http://grails.org/doc/1.0.x/&quot;&gt;http://grails.org/doc/1.0.x/&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://grailsfacilito.blogspot.com/feeds/8589677505594333317/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://grailsfacilito.blogspot.com/2011/07/uso-de-belongsto-y-hasmany-clases-de.html#comment-form' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2807538408803254147/posts/default/8589677505594333317'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2807538408803254147/posts/default/8589677505594333317'/><link rel='alternate' type='text/html' href='http://grailsfacilito.blogspot.com/2011/07/uso-de-belongsto-y-hasmany-clases-de.html' title='Uso de belongsTo y hasMany - Clases de Dominio'/><author><name>regh</name><uri>http://www.blogger.com/profile/10982628756721687344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2807538408803254147.post-5171539112054226634</id><published>2011-07-06T23:28:00.000-07:00</published><updated>2011-07-06T23:33:26.638-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Constraints"/><category scheme="http://www.blogger.com/atom/ns#" term="restricciones Grails"/><title type='text'>Constraints Grails</title><content type='html'>&lt;b&gt;Descripción:&lt;/b&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Tahoma, Verdana, Arial; font-size: 15px;&quot;&gt;Las restricciones en Grails definen reglas de validación, generación de esquemas y CRUD generación de meta daros. Un ejemplo de conjunto de restricciones aplicadas a una clase de domino son:&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;h1 style=&quot;border-bottom-color: rgb(238, 238, 238); border-bottom-style: solid; border-bottom-width: 1px; margin-left: 30px; margin-top: 50px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: #9fc5e8;&quot;&gt;blank&lt;/span&gt;&lt;/h1&gt;&lt;div class=&quot;paragraph&quot; style=&quot;margin-left: 50px;&quot;&gt;&lt;/div&gt;&lt;h2 style=&quot;margin-left: 30px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Verdana, Tahoma; font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal;&quot;&gt;&lt;i&gt;Propósito&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;div class=&quot;paragraph&quot; style=&quot;margin-left: 50px;&quot;&gt;Validar que el String no esta&amp;nbsp;vació&lt;/div&gt;&lt;div class=&quot;paragraph&quot; style=&quot;margin-left: 50px;&quot;&gt;&lt;/div&gt;&lt;h2 style=&quot;font-family: Arial, Verdana, Tahoma; font-size: 1em; font-style: italic; font-weight: normal; margin-left: 30px;&quot;&gt;Ejemplo&lt;/h2&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: orange; font-family: courier, &#39;courier new&#39;, monospace; font-size: 12px; line-height: 12px; white-space: pre;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;pre style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: orange; font-family: courier, &#39;courier new&#39;, monospace; font-size: 12px; line-height: 12px; white-space: pre;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: blue;&quot;&gt;login(blank:&lt;span class=&quot;java-keyword&quot; style=&quot;font-weight: bold;&quot;&gt;false&lt;/span&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: orange; font-family: courier, &#39;courier new&#39;, monospace; font-size: 12px; line-height: 12px; white-space: pre;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: blue;&quot;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&quot;paragraph&quot; style=&quot;margin-left: 50px;&quot;&gt;&lt;/div&gt;&lt;h2 style=&quot;font-family: Arial, Verdana, Tahoma; font-size: 1em; font-style: italic; font-weight: normal; margin-left: 30px;&quot;&gt;Descripción&lt;/h2&gt;&lt;div class=&quot;paragraph&quot; style=&quot;margin-left: 50px;&quot;&gt;Poner en &lt;code&gt;falso&lt;/code&gt;&amp;nbsp;si un valor del string no puede ser vació&lt;/div&gt;&lt;div class=&quot;paragraph&quot; style=&quot;margin-left: 50px;&quot;&gt;Codigo de Error:&amp;nbsp;&lt;code&gt;className.propertyName.blank&lt;/code&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Tahoma, Verdana, Arial; font-size: 15px;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;h1 style=&quot;border-bottom-color: rgb(238, 238, 238); border-bottom-style: solid; border-bottom-width: 1px; font-family: Arial, Verdana, Tahoma; font-size: 1.2em; margin-left: 30px; margin-top: 50px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Tahoma, Verdana, Arial; font-size: 15px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: #9fc5e8;&quot;&gt;creditCard&lt;/span&gt;&lt;/span&gt;&lt;/h1&gt;&lt;div class=&quot;paragraph&quot; style=&quot;margin-left: 50px;&quot;&gt;&lt;/div&gt;&lt;h2 style=&quot;font-family: Arial, Verdana, Tahoma; font-size: 1em; font-style: italic; font-weight: normal; margin-left: 30px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Tahoma, Verdana, Arial; font-size: 15px;&quot;&gt;Purpose&lt;/span&gt;&lt;/h2&gt;&lt;div class=&quot;paragraph&quot; style=&quot;margin-left: 50px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Tahoma, Verdana, Arial; font-size: 15px;&quot;&gt;To validate that a String value is a valid credit card number&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;paragraph&quot; style=&quot;margin-left: 50px;&quot;&gt;&lt;/div&gt;&lt;h2 style=&quot;font-family: Arial, Verdana, Tahoma; font-size: 1em; font-style: italic; font-weight: normal; margin-left: 30px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Tahoma, Verdana, Arial; font-size: 15px;&quot;&gt;Examples&lt;/span&gt;&lt;/h2&gt;&lt;div class=&quot;paragraph&quot; style=&quot;margin-left: 50px;&quot;&gt;&lt;/div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: orange;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: blue;&quot;&gt;cardNumber(creditCard:true)&lt;/span&gt;&lt;/span&gt;&lt;div class=&quot;paragraph&quot; style=&quot;margin-left: 50px;&quot;&gt;&lt;/div&gt;&lt;h2 style=&quot;font-family: Arial, Verdana, Tahoma; font-size: 1em; font-style: italic; font-weight: normal; margin-left: 30px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Tahoma, Verdana, Arial; font-size: 15px;&quot;&gt;Description&lt;/span&gt;&lt;/h2&gt;&lt;div class=&quot;paragraph&quot; style=&quot;margin-left: 50px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Tahoma, Verdana, Arial; font-size: 15px;&quot;&gt;Set to&amp;nbsp;&lt;code&gt;true&lt;/code&gt;&amp;nbsp;if a string should be a credit card number. Internally uses the&amp;nbsp;&lt;code&gt;org.apache.commons.validator.CreditCardValidator&lt;/code&gt;&amp;nbsp;class.&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;paragraph&quot; style=&quot;margin-left: 50px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Tahoma, Verdana, Arial; font-size: 15px;&quot;&gt;Error Code:&amp;nbsp;&lt;code&gt;className.propertyName.creditCard.invalid&lt;/code&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Tahoma, Verdana, Arial; font-size: 15px;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;h1 style=&quot;border-bottom-color: rgb(238, 238, 238); border-bottom-style: solid; border-bottom-width: 1px; font-family: Arial, Verdana, Tahoma; font-size: 1.2em; margin-left: 30px; margin-top: 50px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: #9fc5e8;&quot;&gt;email&lt;/span&gt;&lt;/h1&gt;&lt;div class=&quot;paragraph&quot; style=&quot;margin-left: 50px;&quot;&gt;&lt;/div&gt;&lt;h2 style=&quot;font-family: Arial, Verdana, Tahoma; font-size: 1em; font-style: italic; font-weight: normal; margin-left: 30px;&quot;&gt;Purpose&lt;/h2&gt;&lt;div class=&quot;paragraph&quot; style=&quot;margin-left: 50px;&quot;&gt;To validate that a String value is a valid email address.&lt;/div&gt;&lt;div class=&quot;paragraph&quot; style=&quot;margin-left: 50px;&quot;&gt;&lt;/div&gt;&lt;h2 style=&quot;font-family: Arial, Verdana, Tahoma; font-size: 1em; font-style: italic; font-weight: normal; margin-left: 30px;&quot;&gt;Examples&lt;/h2&gt;&lt;div class=&quot;paragraph&quot; style=&quot;margin-left: 50px;&quot;&gt;&lt;/div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: orange;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: blue;&quot;&gt;homeEmail(email:true)&lt;/span&gt;&lt;/span&gt;&lt;div class=&quot;paragraph&quot; style=&quot;margin-left: 50px;&quot;&gt;&lt;/div&gt;&lt;h2 style=&quot;font-family: Arial, Verdana, Tahoma; font-size: 1em; font-style: italic; font-weight: normal; margin-left: 30px;&quot;&gt;Description&lt;/h2&gt;&lt;div class=&quot;paragraph&quot; style=&quot;margin-left: 50px;&quot;&gt;Set to&amp;nbsp;&lt;code&gt;true&lt;/code&gt;&amp;nbsp;if a string value is an email address. Internally uses the&amp;nbsp;&lt;code&gt;org.apache.commons.validator.EmailValidator&lt;/code&gt;&amp;nbsp;class.&lt;/div&gt;&lt;div class=&quot;paragraph&quot; style=&quot;margin-left: 50px;&quot;&gt;Error Code:&amp;nbsp;&lt;code&gt;className.propertyName.email.invalid&lt;/code&gt;&lt;/div&gt;&lt;div class=&quot;paragraph&quot; style=&quot;margin-left: 50px;&quot;&gt;&lt;/div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Tahoma, Verdana, Arial; font-size: 15px;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;h1 style=&quot;border-bottom-color: rgb(238, 238, 238); border-bottom-style: solid; border-bottom-width: 1px; font-family: Arial, Verdana, Tahoma; font-size: 1.2em; margin-left: 30px; margin-top: 50px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Tahoma, Verdana, Arial; font-size: 15px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: #9fc5e8;&quot;&gt;inList&lt;/span&gt;&lt;/span&gt;&lt;/h1&gt;&lt;div class=&quot;paragraph&quot; style=&quot;margin-left: 50px;&quot;&gt;&lt;/div&gt;&lt;h2 style=&quot;font-family: Arial, Verdana, Tahoma; font-size: 1em; font-style: italic; font-weight: normal; margin-left: 30px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Tahoma, Verdana, Arial; font-size: 15px;&quot;&gt;Purpose&lt;/span&gt;&lt;/h2&gt;&lt;div class=&quot;paragraph&quot; style=&quot;margin-left: 50px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Tahoma, Verdana, Arial; font-size: 15px;&quot;&gt;To validate that a value is within a range or collection of constrained values.&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;paragraph&quot; style=&quot;margin-left: 50px;&quot;&gt;&lt;/div&gt;&lt;h2 style=&quot;font-family: Arial, Verdana, Tahoma; font-size: 1em; font-style: italic; font-weight: normal; margin-left: 30px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Tahoma, Verdana, Arial; font-size: 15px;&quot;&gt;Examples&lt;/span&gt;&lt;/h2&gt;&lt;div class=&quot;paragraph&quot; style=&quot;margin-left: 50px;&quot;&gt;&lt;/div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: orange;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: blue;&quot;&gt;name(inList:[&quot;Joe&quot;, &quot;Fred&quot;, &quot;Bob&quot;] )&lt;/span&gt;&lt;/span&gt;&lt;div class=&quot;paragraph&quot; style=&quot;margin-left: 50px;&quot;&gt;&lt;/div&gt;&lt;h2 style=&quot;font-family: Arial, Verdana, Tahoma; font-size: 1em; font-style: italic; font-weight: normal; margin-left: 30px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Tahoma, Verdana, Arial; font-size: 15px;&quot;&gt;Description&lt;/span&gt;&lt;/h2&gt;&lt;div class=&quot;paragraph&quot; style=&quot;margin-left: 50px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Tahoma, Verdana, Arial; font-size: 15px;&quot;&gt;Constrains a value so that it must be contained within the given list. This constraint influences&amp;nbsp;&lt;a class=&quot;guide&quot; href=&quot;http://grails.org/doc/1.0.x/guide/single.html#5.7 GORM and Constraints&quot;&gt;schema generation&lt;/a&gt;.&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;paragraph&quot; style=&quot;margin-left: 50px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Tahoma, Verdana, Arial; font-size: 15px;&quot;&gt;Error Code:&amp;nbsp;&lt;code&gt;className.propertyName.not.inList&lt;/code&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;h1 style=&quot;border-bottom-color: rgb(238, 238, 238); border-bottom-style: solid; border-bottom-width: 1px; font-family: Arial, Verdana, Tahoma; font-size: 1.2em; margin-left: 30px; margin-top: 50px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: #9fc5e8;&quot;&gt;matches&lt;/span&gt;&lt;/h1&gt;&lt;div class=&quot;paragraph&quot; style=&quot;font-family: Tahoma, Verdana, Arial; font-size: 15px; margin-left: 50px;&quot;&gt;&lt;/div&gt;&lt;h2 style=&quot;font-family: Arial, Verdana, Tahoma; font-size: 1em; font-style: italic; font-weight: normal; margin-left: 30px;&quot;&gt;Purpose&lt;/h2&gt;&lt;div class=&quot;paragraph&quot; style=&quot;font-family: Tahoma, Verdana, Arial; font-size: 15px; margin-left: 50px;&quot;&gt;To validate that a String value matches a given regular expression.&lt;/div&gt;&lt;div class=&quot;paragraph&quot; style=&quot;font-family: Tahoma, Verdana, Arial; font-size: 15px; margin-left: 50px;&quot;&gt;&lt;/div&gt;&lt;h2 style=&quot;font-family: Arial, Verdana, Tahoma; font-size: 1em; font-style: italic; font-weight: normal; margin-left: 30px;&quot;&gt;Examples&lt;/h2&gt;&lt;div class=&quot;paragraph&quot; style=&quot;font-family: Tahoma, Verdana, Arial; font-size: 15px; margin-left: 50px;&quot;&gt;&lt;/div&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: orange;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: blue;&quot;&gt;login(matches:&quot;[a-zA-Z]+&quot;)&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;div class=&quot;paragraph&quot; style=&quot;font-family: Tahoma, Verdana, Arial; font-size: 15px; margin-left: 50px;&quot;&gt;&lt;/div&gt;&lt;h2 style=&quot;font-family: Arial, Verdana, Tahoma; font-size: 1em; font-style: italic; font-weight: normal; margin-left: 30px;&quot;&gt;Description&lt;/h2&gt;&lt;div class=&quot;paragraph&quot; style=&quot;font-family: Tahoma, Verdana, Arial; font-size: 15px; margin-left: 50px;&quot;&gt;Applies a regular expression against a string value.&lt;/div&gt;&lt;div class=&quot;paragraph&quot; style=&quot;font-family: Tahoma, Verdana, Arial; font-size: 15px; margin-left: 50px;&quot;&gt;Error Code:&amp;nbsp;&lt;code&gt;className.propertyName.matches.invalid&lt;/code&gt;&lt;/div&gt;&lt;div class=&quot;paragraph&quot; style=&quot;font-size: 15px; margin-left: 50px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: monospace;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Tahoma, Verdana, Arial;&quot;&gt;&lt;h1 style=&quot;border-bottom-color: rgb(238, 238, 238); border-bottom-style: solid; border-bottom-width: 1px; font-family: Arial, Verdana, Tahoma; font-size: 1.2em; margin-left: 30px; margin-top: 50px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: #9fc5e8;&quot;&gt;max&lt;/span&gt;&lt;/h1&gt;&lt;div class=&quot;paragraph&quot; style=&quot;font-size: 15px; margin-left: 50px;&quot;&gt;&lt;/div&gt;&lt;h2 style=&quot;font-family: Arial, Verdana, Tahoma; font-size: 1em; font-style: italic; font-weight: normal; margin-left: 30px;&quot;&gt;Purpose&lt;/h2&gt;&lt;div class=&quot;paragraph&quot; style=&quot;font-size: 15px; margin-left: 50px;&quot;&gt;Ensures a value does not exceed the given maximum value.&lt;/div&gt;&lt;div class=&quot;paragraph&quot; style=&quot;font-size: 15px; margin-left: 50px;&quot;&gt;&lt;/div&gt;&lt;h2 style=&quot;font-family: Arial, Verdana, Tahoma; font-size: 1em; font-style: italic; font-weight: normal; margin-left: 30px;&quot;&gt;Examples&lt;/h2&gt;&lt;div class=&quot;paragraph&quot; style=&quot;font-size: 15px; margin-left: 50px;&quot;&gt;&lt;/div&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: orange;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: blue;&quot;&gt;age(max:new Date())&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: orange;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: blue;&quot;&gt;price(max:999F)&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Tahoma, Verdana, Arial;&quot;&gt;&lt;div class=&quot;paragraph&quot; style=&quot;font-size: 15px; margin-left: 50px;&quot;&gt;&lt;/div&gt;&lt;h2 style=&quot;font-family: Arial, Verdana, Tahoma; font-size: 1em; font-style: italic; font-weight: normal; margin-left: 30px;&quot;&gt;Description&lt;/h2&gt;&lt;div class=&quot;paragraph&quot; style=&quot;font-size: 15px; margin-left: 50px;&quot;&gt;Sets the maximum value of a class that implements java.lang.Comparable. The same type needs to be used as the property itself. This constraint influences&amp;nbsp;&lt;a class=&quot;guide&quot; href=&quot;http://grails.org/doc/1.0.x/guide/single.html#5.7 GORM and Constraints&quot;&gt;schema generation&lt;/a&gt;.&lt;/div&gt;&lt;div class=&quot;paragraph&quot; style=&quot;font-size: 15px; margin-left: 50px;&quot;&gt;Error Code:&amp;nbsp;&lt;code&gt;className.propertyName.max.exceeded&lt;/code&gt;&lt;/div&gt;&lt;h1 style=&quot;border-bottom-color: rgb(238, 238, 238); border-bottom-style: solid; border-bottom-width: 1px; font-family: Arial, Verdana, Tahoma; font-size: 1.2em; margin-left: 30px; margin-top: 50px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: #9fc5e8;&quot;&gt;maxSize&lt;/span&gt;&lt;/h1&gt;&lt;div class=&quot;paragraph&quot; style=&quot;font-size: 15px; margin-left: 50px;&quot;&gt;&lt;/div&gt;&lt;h2 style=&quot;font-family: Arial, Verdana, Tahoma; font-size: 1em; font-style: italic; font-weight: normal; margin-left: 30px;&quot;&gt;Purpose&lt;/h2&gt;&lt;div class=&quot;paragraph&quot; style=&quot;font-size: 15px; margin-left: 50px;&quot;&gt;Ensures a value&#39;s size does not exceed the given maximum value.&lt;/div&gt;&lt;div class=&quot;paragraph&quot; style=&quot;font-size: 15px; margin-left: 50px;&quot;&gt;&lt;/div&gt;&lt;h2 style=&quot;font-family: Arial, Verdana, Tahoma; font-size: 1em; font-style: italic; font-weight: normal; margin-left: 30px;&quot;&gt;Examples&lt;/h2&gt;&lt;div class=&quot;paragraph&quot; style=&quot;font-size: 15px; margin-left: 50px;&quot;&gt;&lt;/div&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: orange;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: blue;&quot;&gt;children(maxSize:25)&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Tahoma, Verdana, Arial;&quot;&gt;&lt;div class=&quot;paragraph&quot; style=&quot;font-size: 15px; margin-left: 50px;&quot;&gt;&lt;/div&gt;&lt;h2 style=&quot;font-family: Arial, Verdana, Tahoma; font-size: 1em; font-style: italic; font-weight: normal; margin-left: 30px;&quot;&gt;Description&lt;/h2&gt;&lt;div class=&quot;paragraph&quot; style=&quot;font-size: 15px; margin-left: 50px;&quot;&gt;This constraint influences&amp;nbsp;&lt;a class=&quot;guide&quot; href=&quot;http://grails.org/doc/1.0.x/guide/single.html#5.7 GORM and Constraints&quot;&gt;schema generation&lt;/a&gt;.&lt;/div&gt;&lt;div class=&quot;paragraph&quot; style=&quot;font-size: 15px; margin-left: 50px;&quot;&gt;Error Code:&amp;nbsp;&lt;code&gt;className.propertyName.maxSize.exceeded&lt;/code&gt;&lt;/div&gt;&lt;h1 style=&quot;border-bottom-color: rgb(238, 238, 238); border-bottom-style: solid; border-bottom-width: 1px; font-family: Arial, Verdana, Tahoma; font-size: 1.2em; margin-left: 30px; margin-top: 50px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: #9fc5e8;&quot;&gt;min&lt;/span&gt;&lt;/h1&gt;&lt;div class=&quot;paragraph&quot; style=&quot;font-size: 15px; margin-left: 50px;&quot;&gt;&lt;/div&gt;&lt;h2 style=&quot;font-family: Arial, Verdana, Tahoma; font-size: 1em; font-style: italic; font-weight: normal; margin-left: 30px;&quot;&gt;Purpose&lt;/h2&gt;&lt;div class=&quot;paragraph&quot; style=&quot;font-size: 15px; margin-left: 50px;&quot;&gt;Ensures a value does not fall below the given minimum value.&lt;/div&gt;&lt;div class=&quot;paragraph&quot; style=&quot;font-size: 15px; margin-left: 50px;&quot;&gt;&lt;/div&gt;&lt;h2 style=&quot;font-family: Arial, Verdana, Tahoma; font-size: 1em; font-style: italic; font-weight: normal; margin-left: 30px;&quot;&gt;Examples&lt;/h2&gt;&lt;div class=&quot;paragraph&quot; style=&quot;font-size: 15px; margin-left: 50px;&quot;&gt;&lt;/div&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: orange;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: blue;&quot;&gt;age(min:new Date())&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: orange;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: blue;&quot;&gt;price(min:0F)&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Tahoma, Verdana, Arial;&quot;&gt;&lt;div class=&quot;paragraph&quot; style=&quot;font-size: 15px; margin-left: 50px;&quot;&gt;&lt;/div&gt;&lt;h2 style=&quot;font-family: Arial, Verdana, Tahoma; font-size: 1em; font-style: italic; font-weight: normal; margin-left: 30px;&quot;&gt;Description&lt;/h2&gt;&lt;div class=&quot;paragraph&quot; style=&quot;font-size: 15px; margin-left: 50px;&quot;&gt;Sets the minimum value of a class that implements java.lang.Comparable. The same type needs to be used as the property itself. This constraint influences&amp;nbsp;&lt;a class=&quot;guide&quot; href=&quot;http://grails.org/doc/1.0.x/guide/single.html#5.7 GORM and Constraints&quot;&gt;schema generation&lt;/a&gt;.&lt;/div&gt;&lt;div class=&quot;paragraph&quot; style=&quot;font-size: 15px; margin-left: 50px;&quot;&gt;Error Code:&amp;nbsp;&lt;code&gt;className.propertyName.min.notmet&lt;/code&gt;&lt;/div&gt;&lt;h1 style=&quot;border-bottom-color: rgb(238, 238, 238); border-bottom-style: solid; border-bottom-width: 1px; font-family: Arial, Verdana, Tahoma; font-size: 1.2em; margin-left: 30px; margin-top: 50px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: #9fc5e8;&quot;&gt;minSize&lt;/span&gt;&lt;/h1&gt;&lt;div class=&quot;paragraph&quot; style=&quot;font-size: 15px; margin-left: 50px;&quot;&gt;&lt;/div&gt;&lt;h2 style=&quot;font-family: Arial, Verdana, Tahoma; font-size: 1em; font-style: italic; font-weight: normal; margin-left: 30px;&quot;&gt;Purpose&lt;/h2&gt;&lt;div class=&quot;paragraph&quot; style=&quot;font-size: 15px; margin-left: 50px;&quot;&gt;Ensures a value&#39;s size does not fall below the given minimum value.&lt;/div&gt;&lt;div class=&quot;paragraph&quot; style=&quot;font-size: 15px; margin-left: 50px;&quot;&gt;&lt;/div&gt;&lt;h2 style=&quot;font-family: Arial, Verdana, Tahoma; font-size: 1em; font-style: italic; font-weight: normal; margin-left: 30px;&quot;&gt;Examples&lt;/h2&gt;&lt;div class=&quot;paragraph&quot; style=&quot;font-size: 15px; margin-left: 50px;&quot;&gt;&lt;/div&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: orange; color: blue;&quot;&gt;children(minSize:25)&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Tahoma, Verdana, Arial;&quot;&gt;&lt;div class=&quot;paragraph&quot; style=&quot;font-size: 15px; margin-left: 50px;&quot;&gt;&lt;/div&gt;&lt;h2 style=&quot;font-family: Arial, Verdana, Tahoma; font-size: 1em; font-style: italic; font-weight: normal; margin-left: 30px;&quot;&gt;Description&lt;/h2&gt;&lt;div class=&quot;paragraph&quot; style=&quot;font-size: 15px; margin-left: 50px;&quot;&gt;Sets the minimum size of a collection or number property. This constraint influences&amp;nbsp;&lt;a class=&quot;guide&quot; href=&quot;http://grails.org/doc/1.0.x/guide/single.html#5.7 GORM and Constraints&quot;&gt;schema generation&lt;/a&gt;.&lt;/div&gt;&lt;div class=&quot;paragraph&quot; style=&quot;font-size: 15px; margin-left: 50px;&quot;&gt;Error Code:&amp;nbsp;&lt;code&gt;className.propertyName.minSize.notmet&lt;/code&gt;&lt;/div&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Tahoma, Verdana, Arial; font-size: 15px;&quot;&gt;&lt;h1 style=&quot;border-bottom-color: rgb(238, 238, 238); border-bottom-style: solid; border-bottom-width: 1px; font-family: Arial, Verdana, Tahoma; font-size: 1.2em; margin-left: 30px; margin-top: 50px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: #9fc5e8;&quot;&gt;notEqual&lt;/span&gt;&lt;/h1&gt;&lt;div class=&quot;paragraph&quot; style=&quot;margin-left: 50px;&quot;&gt;&lt;/div&gt;&lt;h2 style=&quot;font-family: Arial, Verdana, Tahoma; font-size: 1em; font-style: italic; font-weight: normal; margin-left: 30px;&quot;&gt;Purpose&lt;/h2&gt;&lt;div class=&quot;paragraph&quot; style=&quot;margin-left: 50px;&quot;&gt;Ensures that a property is not equal to the specified value&lt;/div&gt;&lt;div class=&quot;paragraph&quot; style=&quot;margin-left: 50px;&quot;&gt;&lt;/div&gt;&lt;h2 style=&quot;font-family: Arial, Verdana, Tahoma; font-size: 1em; font-style: italic; font-weight: normal; margin-left: 30px;&quot;&gt;Examples&lt;/h2&gt;&lt;div class=&quot;paragraph&quot; style=&quot;margin-left: 50px;&quot;&gt;&lt;/div&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: orange;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: blue;&quot;&gt;login(notEqual:&quot;Bob&quot;)&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Tahoma, Verdana, Arial;&quot;&gt;&lt;div class=&quot;paragraph&quot; style=&quot;font-size: 15px; margin-left: 50px;&quot;&gt;&lt;/div&gt;&lt;h2 style=&quot;font-family: Arial, Verdana, Tahoma; font-size: 1em; font-style: italic; font-weight: normal; margin-left: 30px;&quot;&gt;Description&lt;/h2&gt;&lt;div class=&quot;paragraph&quot; style=&quot;font-size: 15px; margin-left: 50px;&quot;&gt;Error Code:&amp;nbsp;&lt;code&gt;className.propertyName.notEqual&lt;/code&gt;&lt;/div&gt;&lt;h1 style=&quot;border-bottom-color: rgb(238, 238, 238); border-bottom-style: solid; border-bottom-width: 1px; font-family: Arial, Verdana, Tahoma; font-size: 1.2em; margin-left: 30px; margin-top: 50px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: #9fc5e8;&quot;&gt;nullable&lt;/span&gt;&lt;/h1&gt;&lt;div class=&quot;paragraph&quot; style=&quot;font-size: 15px; margin-left: 50px;&quot;&gt;&lt;/div&gt;&lt;h2 style=&quot;font-family: Arial, Verdana, Tahoma; font-size: 1em; font-style: italic; font-weight: normal; margin-left: 30px;&quot;&gt;Purpose&lt;/h2&gt;&lt;div class=&quot;paragraph&quot; style=&quot;font-size: 15px; margin-left: 50px;&quot;&gt;Allows a property to be set to&amp;nbsp;&lt;code&gt;null&lt;/code&gt;. By default Grails does not allow&amp;nbsp;&lt;code&gt;null&lt;/code&gt;&amp;nbsp;values for properties.&lt;/div&gt;&lt;div class=&quot;paragraph&quot; style=&quot;font-size: 15px; margin-left: 50px;&quot;&gt;&lt;/div&gt;&lt;h2 style=&quot;font-family: Arial, Verdana, Tahoma; font-size: 1em; font-style: italic; font-weight: normal; margin-left: 30px;&quot;&gt;Examples&lt;/h2&gt;&lt;div class=&quot;paragraph&quot; style=&quot;font-size: 15px; margin-left: 50px;&quot;&gt;&lt;/div&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: orange;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: blue;&quot;&gt;age(nullable:true)&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Tahoma, Verdana, Arial;&quot;&gt;&lt;div class=&quot;paragraph&quot; style=&quot;font-size: 15px; margin-left: 50px;&quot;&gt;&lt;/div&gt;&lt;h2 style=&quot;font-family: Arial, Verdana, Tahoma; font-size: 1em; font-style: italic; font-weight: normal; margin-left: 30px;&quot;&gt;Description&lt;/h2&gt;&lt;div class=&quot;paragraph&quot; style=&quot;font-size: 15px; margin-left: 50px;&quot;&gt;Set to&amp;nbsp;&lt;code&gt;true&lt;/code&gt;&amp;nbsp;if the property allows&amp;nbsp;&lt;code&gt;null&lt;/code&gt;&amp;nbsp;values.&lt;/div&gt;&lt;div class=&quot;paragraph&quot; style=&quot;font-size: 15px; margin-left: 50px;&quot;&gt;Error Code:&amp;nbsp;&lt;code&gt;className.propertyName.nullable&lt;/code&gt;&lt;/div&gt;&lt;div class=&quot;paragraph&quot; style=&quot;font-size: 15px; margin-left: 50px;&quot;&gt;&lt;/div&gt;&lt;div id=&quot;bodyEmptyFiller&quot; style=&quot;font-size: 15px; height: 50px;&quot;&gt;&lt;/div&gt;&lt;h1 style=&quot;border-bottom-color: rgb(238, 238, 238); border-bottom-style: solid; border-bottom-width: 1px; font-family: Arial, Verdana, Tahoma; font-size: 1.2em; margin-left: 30px; margin-top: 50px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: #9fc5e8;&quot;&gt;range&lt;/span&gt;&lt;/h1&gt;&lt;div class=&quot;paragraph&quot; style=&quot;font-size: 15px; margin-left: 50px;&quot;&gt;&lt;/div&gt;&lt;h2 style=&quot;font-family: Arial, Verdana, Tahoma; font-size: 1em; font-style: italic; font-weight: normal; margin-left: 30px;&quot;&gt;Purpose&lt;/h2&gt;&lt;div class=&quot;paragraph&quot; style=&quot;font-size: 15px; margin-left: 50px;&quot;&gt;Uses a Groovy range to ensure that a property&#39;s value occurs within a specified range&lt;/div&gt;&lt;div class=&quot;paragraph&quot; style=&quot;font-size: 15px; margin-left: 50px;&quot;&gt;&lt;/div&gt;&lt;h2 style=&quot;font-family: Arial, Verdana, Tahoma; font-size: 1em; font-style: italic; font-weight: normal; margin-left: 30px;&quot;&gt;Examples&lt;/h2&gt;&lt;div class=&quot;paragraph&quot; style=&quot;font-size: 15px; margin-left: 50px;&quot;&gt;&lt;/div&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: orange;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: blue;&quot;&gt;age(range:18..65)&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Tahoma, Verdana, Arial;&quot;&gt;&lt;div class=&quot;paragraph&quot; style=&quot;font-size: 15px; margin-left: 50px;&quot;&gt;&lt;/div&gt;&lt;h2 style=&quot;font-family: Arial, Verdana, Tahoma; font-size: 1em; font-style: italic; font-weight: normal; margin-left: 30px;&quot;&gt;Description&lt;/h2&gt;&lt;div class=&quot;paragraph&quot; style=&quot;font-size: 15px; margin-left: 50px;&quot;&gt;Set to a Groovy range which can contain numbers in the form of an&amp;nbsp;&lt;code&gt;IntRange&lt;/code&gt;, dates or any object that implements&amp;nbsp;&lt;code&gt;Comparable&lt;/code&gt;&amp;nbsp;and provides&lt;code&gt;next&lt;/code&gt;&amp;nbsp;and&amp;nbsp;&lt;code&gt;previous&lt;/code&gt;&amp;nbsp;methods for navigation. This constraint influences&amp;nbsp;&lt;a class=&quot;guide&quot; href=&quot;http://grails.org/doc/1.0.x/guide/single.html#5.7 GORM and Constraints&quot;&gt;schema generation&lt;/a&gt;.&lt;/div&gt;&lt;div class=&quot;paragraph&quot; style=&quot;font-size: 15px; margin-left: 50px;&quot;&gt;Error Code:&amp;nbsp;&lt;code&gt;className.propertyName.range.toosmall&lt;/code&gt;&amp;nbsp;or&amp;nbsp;&lt;code&gt;className.propertyName.range.toobig&lt;/code&gt;&lt;/div&gt;&lt;h1 style=&quot;border-bottom-color: rgb(238, 238, 238); border-bottom-style: solid; border-bottom-width: 1px; font-family: Arial, Verdana, Tahoma; font-size: 1.2em; margin-left: 30px; margin-top: 50px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: #9fc5e8;&quot;&gt;scale&lt;/span&gt;&lt;/h1&gt;&lt;div class=&quot;paragraph&quot; style=&quot;font-size: 15px; margin-left: 50px;&quot;&gt;&lt;/div&gt;&lt;h2 style=&quot;font-family: Arial, Verdana, Tahoma; font-size: 1em; font-style: italic; font-weight: normal; margin-left: 30px;&quot;&gt;Purpose&lt;/h2&gt;&lt;div class=&quot;paragraph&quot; style=&quot;font-size: 15px; margin-left: 50px;&quot;&gt;Set to the desired scale for floating point numbers (i.e., the number of digits to the right of the decimal point).&lt;/div&gt;&lt;div class=&quot;paragraph&quot; style=&quot;font-size: 15px; margin-left: 50px;&quot;&gt;&lt;/div&gt;&lt;h2 style=&quot;font-family: Arial, Verdana, Tahoma; font-size: 1em; font-style: italic; font-weight: normal; margin-left: 30px;&quot;&gt;Examples&lt;/h2&gt;&lt;div class=&quot;paragraph&quot; style=&quot;font-size: 15px; margin-left: 50px;&quot;&gt;&lt;/div&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: orange;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: blue;&quot;&gt;salary(scale:2)&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Tahoma, Verdana, Arial;&quot;&gt;&lt;div class=&quot;paragraph&quot; style=&quot;font-size: 15px; margin-left: 50px;&quot;&gt;&lt;/div&gt;&lt;h2 style=&quot;font-family: Arial, Verdana, Tahoma; font-size: 1em; font-style: italic; font-weight: normal; margin-left: 30px;&quot;&gt;Description&lt;/h2&gt;&lt;div class=&quot;paragraph&quot; style=&quot;font-size: 15px; margin-left: 50px;&quot;&gt;Set to the desired scale for floating point numbers (i.e., the number of digits to the right of the decimal point). This constraint is applicable for properties of the following types:&amp;nbsp;&lt;code&gt;java.lang.Float&lt;/code&gt;,&amp;nbsp;&lt;code&gt;java.lang.Double&lt;/code&gt;, and&amp;nbsp;&lt;code&gt;java.math.BigDecimal&lt;/code&gt;&amp;nbsp;(and its subclasses). When validation is invoked, this constraint determines if the number includes more nonzero decimal places than the scale permits. If so, it automatically rounds the number to the maximum number of decimal places allowed by the scale. This constraint does not generate validation error messages.&lt;/div&gt;&lt;div class=&quot;paragraph&quot; style=&quot;font-size: 15px; margin-left: 50px;&quot;&gt;This constraint influences&amp;nbsp;&lt;a class=&quot;guide&quot; href=&quot;http://grails.org/doc/1.0.x/guide/single.html#5.7 GORM and Constraints&quot;&gt;schema generation&lt;/a&gt;.&lt;/div&gt;&lt;div class=&quot;paragraph&quot; style=&quot;font-size: 15px; margin-left: 50px;&quot;&gt;Error Code: N/A&lt;/div&gt;&lt;h1 style=&quot;border-bottom-color: rgb(238, 238, 238); border-bottom-style: solid; border-bottom-width: 1px; font-family: Arial, Verdana, Tahoma; font-size: 1.2em; margin-left: 30px; margin-top: 50px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: #9fc5e8;&quot;&gt;size&lt;/span&gt;&lt;/h1&gt;&lt;div class=&quot;paragraph&quot; style=&quot;font-size: 15px; margin-left: 50px;&quot;&gt;&lt;/div&gt;&lt;h2 style=&quot;font-family: Arial, Verdana, Tahoma; font-size: 1em; font-style: italic; font-weight: normal; margin-left: 30px;&quot;&gt;Purpose&lt;/h2&gt;&lt;div class=&quot;paragraph&quot; style=&quot;font-size: 15px; margin-left: 50px;&quot;&gt;Uses a Groovy range to restrict the size of a collection or number or the length of a String.&lt;/div&gt;&lt;div class=&quot;paragraph&quot; style=&quot;font-size: 15px; margin-left: 50px;&quot;&gt;&lt;/div&gt;&lt;h2 style=&quot;font-family: Arial, Verdana, Tahoma; font-size: 1em; font-style: italic; font-weight: normal; margin-left: 30px;&quot;&gt;Examples&lt;/h2&gt;&lt;div class=&quot;paragraph&quot; style=&quot;font-size: 15px; margin-left: 50px;&quot;&gt;&lt;/div&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: orange;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: blue;&quot;&gt;children(size:5..15)&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Tahoma, Verdana, Arial;&quot;&gt;&lt;div class=&quot;paragraph&quot; style=&quot;font-size: 15px; margin-left: 50px;&quot;&gt;&lt;/div&gt;&lt;h2 style=&quot;font-family: Arial, Verdana, Tahoma; font-size: 1em; font-style: italic; font-weight: normal; margin-left: 30px;&quot;&gt;Description&lt;/h2&gt;&lt;div class=&quot;paragraph&quot; style=&quot;font-size: 15px; margin-left: 50px;&quot;&gt;Sets the size of a collection or number property or String length.&lt;/div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 15px;&quot;&gt;Currently this constraint cannot be used in addition to &lt;/span&gt;&lt;/span&gt;&lt;a href=&quot;http://grails.org/doc/1.0.x/ref/Constraints/blank.html&quot; style=&quot;font-family: Tahoma, Verdana, Arial; font-size: 15px;&quot;&gt;blank&lt;/a&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Tahoma, Verdana, Arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 15px;&quot;&gt; or &lt;/span&gt;&lt;/span&gt;&lt;a href=&quot;http://grails.org/doc/1.0.x/ref/Constraints/nullable.html&quot; style=&quot;font-family: Tahoma, Verdana, Arial; font-size: 15px;&quot;&gt;nullable&lt;/a&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Tahoma, Verdana, Arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 15px;&quot;&gt;, a custom validator may be added to perform this kind of constraints.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Tahoma, Verdana, Arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 15px;&quot;&gt;This constraint influences&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;a class=&quot;guide&quot; href=&quot;http://grails.org/doc/1.0.x/guide/single.html#5.7 GORM and Constraints&quot; style=&quot;font-family: Tahoma, Verdana, Arial; font-size: 15px;&quot;&gt;schema generation&lt;/a&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Tahoma, Verdana, Arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 15px;&quot;&gt;.&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Tahoma, Verdana, Arial; font-size: 15px;&quot;&gt;&lt;div class=&quot;paragraph&quot; style=&quot;margin-left: 50px;&quot;&gt;Error Code:&amp;nbsp;&lt;code&gt;className.propertyName.size.toosmall&lt;/code&gt;&amp;nbsp;or&amp;nbsp;&lt;code&gt;className.propertyName.size.toobig&lt;/code&gt;&lt;/div&gt;&lt;div class=&quot;paragraph&quot; style=&quot;margin-left: 50px;&quot;&gt;&lt;/div&gt;&lt;div id=&quot;bodyEmptyFiller&quot; style=&quot;height: 50px;&quot;&gt;&lt;/div&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Tahoma, Verdana, Arial;&quot;&gt;&lt;h1 style=&quot;border-bottom-color: rgb(238, 238, 238); border-bottom-style: solid; border-bottom-width: 1px; font-family: Arial, Verdana, Tahoma; font-size: 1.2em; margin-left: 30px; margin-top: 50px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: #9fc5e8;&quot;&gt;unique&lt;/span&gt;&lt;/h1&gt;&lt;div class=&quot;paragraph&quot; style=&quot;font-size: 15px; margin-left: 50px;&quot;&gt;&lt;/div&gt;&lt;h2 style=&quot;font-family: Arial, Verdana, Tahoma; font-size: 1em; font-style: italic; font-weight: normal; margin-left: 30px;&quot;&gt;Purpose&lt;/h2&gt;&lt;div class=&quot;paragraph&quot; style=&quot;font-size: 15px; margin-left: 50px;&quot;&gt;Constraints a property as unique at the database level&lt;/div&gt;&lt;div class=&quot;paragraph&quot; style=&quot;font-size: 15px; margin-left: 50px;&quot;&gt;&lt;/div&gt;&lt;h2 style=&quot;font-family: Arial, Verdana, Tahoma; font-size: 1em; font-style: italic; font-weight: normal; margin-left: 30px;&quot;&gt;Examples&lt;/h2&gt;&lt;div class=&quot;paragraph&quot; style=&quot;font-size: 15px; margin-left: 50px;&quot;&gt;&lt;/div&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: orange;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: blue;&quot;&gt;login(unique:true)&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Tahoma, Verdana, Arial;&quot;&gt;&lt;div class=&quot;paragraph&quot; style=&quot;font-size: 15px; margin-left: 50px;&quot;&gt;&lt;/div&gt;&lt;h2 style=&quot;font-family: Arial, Verdana, Tahoma; font-size: 1em; font-style: italic; font-weight: normal; margin-left: 30px;&quot;&gt;Description&lt;/h2&gt;&lt;div class=&quot;paragraph&quot; style=&quot;font-size: 15px; margin-left: 50px;&quot;&gt;Set to true if the property must be unique (this is a persistent call and will query the database)&lt;/div&gt;&lt;div class=&quot;paragraph&quot; style=&quot;font-size: 15px; margin-left: 50px;&quot;&gt;Scope of&amp;nbsp;&lt;code&gt;unique&lt;/code&gt;&amp;nbsp;constraint can be specified by specifying the name of another property of the same class, or list of such names. The semantics in these cases is: pair of constrained property value and scope property value must be unique (or combination of constrained property value and all scope property values must be unique).&lt;/div&gt;&lt;div class=&quot;paragraph&quot; style=&quot;font-size: 15px; margin-left: 50px;&quot;&gt;Example:&lt;/div&gt;&lt;div class=&quot;paragraph&quot; style=&quot;font-size: 15px; margin-left: 50px;&quot;&gt;&lt;/div&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: orange;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: blue;&quot;&gt;group(unique:&#39;department&#39;)&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Tahoma, Verdana, Arial;&quot;&gt;&lt;div class=&quot;paragraph&quot; style=&quot;font-size: 15px; margin-left: 50px;&quot;&gt;In the above example&amp;nbsp;&lt;code&gt;group&lt;/code&gt;&amp;nbsp;name must be unique in one&amp;nbsp;&lt;code&gt;department&lt;/code&gt;&amp;nbsp;but there might be groups with same name in different departments.&lt;/div&gt;&lt;div class=&quot;paragraph&quot; style=&quot;font-size: 15px; margin-left: 50px;&quot;&gt;Another example:&lt;/div&gt;&lt;div class=&quot;paragraph&quot; style=&quot;font-size: 15px; margin-left: 50px;&quot;&gt;&lt;/div&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: orange;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: blue;&quot;&gt;login(unique:[&#39;group&#39;,&#39;department&#39;])&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Tahoma, Verdana, Arial;&quot;&gt;&lt;div class=&quot;paragraph&quot; style=&quot;font-size: 15px; margin-left: 50px;&quot;&gt;In this example&amp;nbsp;&lt;code&gt;login&lt;/code&gt;&amp;nbsp;must be unique in&amp;nbsp;&lt;code&gt;group&lt;/code&gt;&amp;nbsp;and&amp;nbsp;&lt;code&gt;department&lt;/code&gt;. There might be same logins in different groups or different departments.&lt;/div&gt;&lt;h1 style=&quot;border-bottom-color: rgb(238, 238, 238); border-bottom-style: solid; border-bottom-width: 1px; font-family: Arial, Verdana, Tahoma; font-size: 1.2em; margin-left: 30px; margin-top: 50px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: #9fc5e8;&quot;&gt;url&lt;/span&gt;&lt;/h1&gt;&lt;div class=&quot;paragraph&quot; style=&quot;font-size: 15px; margin-left: 50px;&quot;&gt;&lt;/div&gt;&lt;h2 style=&quot;font-family: Arial, Verdana, Tahoma; font-size: 1em; font-style: italic; font-weight: normal; margin-left: 30px;&quot;&gt;Purpose&lt;/h2&gt;&lt;div class=&quot;paragraph&quot; style=&quot;font-size: 15px; margin-left: 50px;&quot;&gt;To validate that a String value is a valid URL.&lt;/div&gt;&lt;div class=&quot;paragraph&quot; style=&quot;font-size: 15px; margin-left: 50px;&quot;&gt;&lt;/div&gt;&lt;h2 style=&quot;font-family: Arial, Verdana, Tahoma; font-size: 1em; font-style: italic; font-weight: normal; margin-left: 30px;&quot;&gt;Examples&lt;/h2&gt;&lt;div class=&quot;paragraph&quot; style=&quot;font-size: 15px; margin-left: 50px;&quot;&gt;&lt;/div&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: orange;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: blue;&quot;&gt;homePage(url:true)&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Tahoma, Verdana, Arial;&quot;&gt;&lt;div class=&quot;paragraph&quot; style=&quot;font-size: 15px; margin-left: 50px;&quot;&gt;&lt;/div&gt;&lt;h2 style=&quot;font-family: Arial, Verdana, Tahoma; font-size: 1em; font-style: italic; font-weight: normal; margin-left: 30px;&quot;&gt;Description&lt;/h2&gt;&lt;div class=&quot;paragraph&quot; style=&quot;font-size: 15px; margin-left: 50px;&quot;&gt;Set to&amp;nbsp;&lt;code&gt;true&lt;/code&gt;&amp;nbsp;if a string value is a URL. Internally uses the&amp;nbsp;&lt;code&gt;org.apache.commons.validator.UrlValidator&lt;/code&gt;&amp;nbsp;class.&lt;/div&gt;&lt;div class=&quot;paragraph&quot; style=&quot;font-size: 15px; margin-left: 50px;&quot;&gt;Error Code:&amp;nbsp;&lt;code&gt;className.propertyName.url.invalid&lt;/code&gt;&lt;/div&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 15px;&quot;&gt;&lt;div class=&quot;paragraph&quot; style=&quot;font-family: Tahoma, Verdana, Arial; margin-left: 50px;&quot;&gt;&lt;code&gt;&lt;br /&gt;
&lt;/code&gt;&lt;/div&gt;&lt;div class=&quot;paragraph&quot; style=&quot;font-family: Tahoma, Verdana, Arial; margin-left: 50px;&quot;&gt;&lt;code&gt;&lt;br /&gt;
&lt;/code&gt;&lt;/div&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Tahoma, Verdana, Arial; font-size: 15px;&quot;&gt;&lt;b&gt;Referencia:&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Tahoma, Verdana, Arial; font-size: 15px;&quot;&gt;&lt;a href=&quot;http://grails.org/doc/1.0.x/&quot;&gt;http://grails.org/doc/1.0.x/&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://grailsfacilito.blogspot.com/feeds/5171539112054226634/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://grailsfacilito.blogspot.com/2011/07/constraints-grails.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2807538408803254147/posts/default/5171539112054226634'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2807538408803254147/posts/default/5171539112054226634'/><link rel='alternate' type='text/html' href='http://grailsfacilito.blogspot.com/2011/07/constraints-grails.html' title='Constraints Grails'/><author><name>regh</name><uri>http://www.blogger.com/profile/10982628756721687344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2807538408803254147.post-6782197092885948413</id><published>2011-07-06T20:45:00.000-07:00</published><updated>2011-07-06T20:45:10.623-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Consola Grails"/><title type='text'>Consola Grails</title><content type='html'>&lt;b&gt;Descripción:&lt;/b&gt;&lt;br /&gt;
Este comando carga una interfaz gráfica de usuario donde se pueden escribir comandos de Groovy.&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: orange;&quot;&gt;grails console&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://grailsfacilito.blogspot.com/feeds/6782197092885948413/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://grailsfacilito.blogspot.com/2011/07/consola-grails.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2807538408803254147/posts/default/6782197092885948413'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2807538408803254147/posts/default/6782197092885948413'/><link rel='alternate' type='text/html' href='http://grailsfacilito.blogspot.com/2011/07/consola-grails.html' title='Consola Grails'/><author><name>regh</name><uri>http://www.blogger.com/profile/10982628756721687344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2807538408803254147.post-8542808487932117963</id><published>2011-07-06T16:03:00.000-07:00</published><updated>2011-07-06T16:10:37.353-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Groovy Server Pages"/><title type='text'>Groovy Server Pages (.gsp)</title><content type='html'>&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Tahoma, Verdana, Arial; font-size: 15px;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Tahoma, Verdana, Arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 15px;&quot;&gt;Groovy Servers Pages (o GSP para resumir) es la&amp;nbsp;tecnología&amp;nbsp;de vista de Grails. Esta esta diseñada para ser mas familiar para usuarios de&amp;nbsp;tecnologías&amp;nbsp;como ASP y JSP, pero ser aun mas flexible e intuitivo.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Tahoma, Verdana, Arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 15px;&quot;&gt;En Grails GSPs&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 15px;&quot;&gt;están&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 15px;&quot;&gt;&amp;nbsp;en el directorio:&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Tahoma, Verdana, Arial; font-size: 15px;&quot;&gt;&lt;code&gt;grails-app/views.&lt;/code&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Tahoma, Verdana, Arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 15px;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Tahoma, Verdana, Arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 15px;&quot;&gt;GSP soporta el uso de bloques&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;code style=&quot;font-family: Tahoma, Verdana, Arial; font-size: 15px;&quot;&gt;&amp;lt;% %&amp;gt;&lt;/code&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Tahoma, Verdana, Arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 15px;&quot;&gt;&amp;nbsp;para incrustar&amp;nbsp;código de&amp;nbsp;Groovy (este no se recomienda):&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Tahoma, Verdana, Arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 15px;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Tahoma, Verdana, Arial; font-size: 15px;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div &quot;width=50% class=&quot;code&quot; style=&quot;background-color: #f0f0f0; border-bottom-color: black; border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: black; border-left-style: dashed; border-left-width: 1px; border-right-color: black; border-right-style: dashed; border-right-width: 1px; border-top-color: black; border-top-style: dashed; border-top-width: 1px; color: inherit; font-family: courier, &#39;courier new&#39;, monospace; font-size: 12px; line-height: 12px; margin-bottom: 4px; margin-top: 4px; overflow-x: auto; overflow-y: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px; white-space: pre; width: 1200px;&quot;&gt;&lt;pre&gt;&lt;span &quot;width=50%&quot; class=&quot;xml-tag&quot; style=&quot;background-color: inherit; color: #0000aa;&quot;&gt;&amp;lt;html&amp;gt;&lt;/span&gt;
   &lt;span class=&quot;xml-tag&quot; style=&quot;background-color: inherit; color: #0000aa;&quot;&gt;&amp;lt;body&amp;gt;&lt;/span&gt;
     &lt;span class=&quot;xml-tag&quot; style=&quot;background-color: inherit; color: #0000aa;&quot;&gt;&amp;lt;%=&lt;span class=&quot;xml-quote&quot;&gt;&quot;Hello GSP!&quot;&lt;/span&gt; %&amp;gt;&lt;/span&gt;
   &lt;span class=&quot;xml-tag&quot; style=&quot;background-color: inherit; color: #0000aa;&quot;&gt;&amp;lt;/body&amp;gt;&lt;/span&gt;
&lt;span class=&quot;xml-tag&quot; style=&quot;background-color: inherit; color: #0000aa;&quot;&gt;&amp;lt;/html&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;div&gt;&lt;span class=&quot;xml-tag&quot; style=&quot;background-color: inherit; color: #0000aa;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: courier, &#39;courier new&#39;, monospace; font-size: 12px; line-height: 12px; white-space: pre;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;pre&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: courier, &#39;courier new&#39;, monospace; font-size: 12px; line-height: 12px; white-space: pre;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #0000aa;&quot;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Tahoma, Verdana, Arial; font-size: 15px;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;paragraph&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Tahoma, Verdana, Arial; font-size: 15px;&quot;&gt;GSP tambien soporta el estilo de comentarioa JSP del lado del servidor, ejemplo:&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;code&quot; style=&quot;background-color: #f0f0f0; border-bottom-color: black; border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: black; border-left-style: dashed; border-left-width: 1px; border-right-color: black; border-right-style: dashed; border-right-width: 1px; border-top-color: black; border-top-style: dashed; border-top-width: 1px; font-family: courier, &#39;courier new&#39;, monospace; font-size: 12px; line-height: 12px; margin-bottom: 4px; margin-top: 4px; overflow-x: auto; overflow-y: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px; white-space: pre; width: 1200px;&quot;&gt;&lt;pre&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Tahoma, Verdana, Arial; font-size: 15px;&quot;&gt;&lt;span class=&quot;xml-tag&quot; style=&quot;background-color: inherit; color: #0000aa;&quot;&gt;&amp;lt;body&amp;gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgba(0, 0, 0, 0);&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;xml-tag&quot; style=&quot;background-color: inherit; color: #0000aa;&quot;&gt;&amp;lt;%-- Este es mi comentario --%&amp;gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgba(0, 0, 0, 0);&quot;&gt;
     &lt;/span&gt;&lt;span class=&quot;xml-tag&quot; style=&quot;background-color: inherit; color: #0000aa;&quot;&gt;&amp;lt;%=&lt;span class=&quot;xml-quote&quot;&gt;&quot;Hola GSP!&quot;&lt;/span&gt; %&amp;gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgba(0, 0, 0, 0);&quot;&gt;
   &lt;/span&gt;&lt;span class=&quot;xml-tag&quot; style=&quot;background-color: inherit; color: #0000aa;&quot;&gt;&amp;lt;/body&amp;gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgba(0, 0, 0, 0);&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;xml-tag&quot; style=&quot;background-color: inherit; color: #0000aa;&quot;&gt;&amp;lt;/html&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;color: inherit;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Tahoma, Verdana, Arial; font-size: 15px;&quot;&gt;&lt;span class=&quot;xml-tag&quot; style=&quot;background-color: inherit; color: #0000aa;&quot;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Tahoma, Verdana, Arial; font-size: 15px;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Tahoma, Verdana, Arial; font-size: 15px;&quot;&gt;&lt;h2&gt;&lt;a href=&quot;http://www.blogger.com/post-edit.g?blogID=2807538408803254147&amp;amp;postID=8542808487932117963&amp;amp;from=pencil&quot; name=&quot;6.2.1.1 Variables and Scopes&quot;&gt;Variables and Scopes&lt;/a&gt;&lt;/h2&gt;Con el bloques&amp;nbsp;&lt;code&gt;&amp;lt;% %&amp;gt;&lt;/code&gt;&amp;nbsp;se pueden declarar variables:&lt;div class=&quot;paragraph&quot;&gt;&lt;/div&gt;&lt;div class=&quot;code&quot; style=&quot;background-color: #f0f0f0; border-bottom-color: black; border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: black; border-left-style: dashed; border-left-width: 1px; border-right-color: black; border-right-style: dashed; border-right-width: 1px; border-top-color: black; border-top-style: dashed; border-top-width: 1px; color: inherit; font-family: courier, &#39;courier new&#39;, monospace; font-size: 12px; line-height: 12px; margin-bottom: 4px; margin-top: 4px; overflow-x: auto; overflow-y: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px; white-space: pre; width: 1200px;&quot;&gt;&lt;pre&gt;&lt;span class=&quot;xml-tag&quot; style=&quot;background-color: inherit; color: #0000aa;&quot;&gt;&amp;lt;% now = new Date() %&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&quot;paragraph&quot;&gt;Y entonces re usar esas variables más abajo de la página.&lt;/div&gt;&lt;div class=&quot;paragraph&quot;&gt;&lt;/div&gt;&lt;div class=&quot;code&quot; style=&quot;background-color: #f0f0f0; border-bottom-color: black; border-bottom-style: dashed; border-bottom-width: 1px; border-left-color: black; border-left-style: dashed; border-left-width: 1px; border-right-color: black; border-right-style: dashed; border-right-width: 1px; border-top-color: black; border-top-style: dashed; border-top-width: 1px; color: inherit; font-family: courier, &#39;courier new&#39;, monospace; font-size: 12px; line-height: 12px; margin-bottom: 4px; margin-top: 4px; overflow-x: auto; overflow-y: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px; white-space: pre; width: 1200px;&quot;&gt;&lt;pre&gt;&lt;span class=&quot;xml-tag&quot; style=&quot;background-color: inherit; color: #0000aa;&quot;&gt;&amp;lt;%=now%&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://grailsfacilito.blogspot.com/feeds/8542808487932117963/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://grailsfacilito.blogspot.com/2011/07/groovy-server-pages-gsp.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2807538408803254147/posts/default/8542808487932117963'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2807538408803254147/posts/default/8542808487932117963'/><link rel='alternate' type='text/html' href='http://grailsfacilito.blogspot.com/2011/07/groovy-server-pages-gsp.html' title='Groovy Server Pages (.gsp)'/><author><name>regh</name><uri>http://www.blogger.com/profile/10982628756721687344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2807538408803254147.post-1830143281046214504</id><published>2011-07-05T21:47:00.000-07:00</published><updated>2011-07-06T22:33:48.091-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="grails imagen base datos"/><title type='text'>Guardar Imagen en Base de Datos - Grails</title><content type='html'>&lt;span class=&quot;Apple-style-span&quot;&gt;Bienvenido GF&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;Crear un aplicación en Grails que guarde una imagen&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;Descripción:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;App de grails que guarde imágenes&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;Nivel: Básico&lt;br /&gt;
&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;1&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;1.1 &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;abrir consola cmd&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;1.2 &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;ir al directorio donde se quiera crear la aplicación: en windows para navegar por directorios en consola se usa el comando &lt;i&gt;cd&lt;/i&gt;.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;2&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;Crear aplicación: una vez en el directorio deseado: escribir el siguiente comando:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: orange;&quot;&gt;grails create-app ImgsGrailsApp&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;2.2 &lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;escribir en la consola para entrar a la aplicación: &lt;i&gt;cd ImgsGrailsApp&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;3&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;Crear clase de dominio: escribir en consola:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: orange; font-size: medium;&quot;&gt;grails create-domain-class imagen&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;&lt;i&gt;3.2&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;editar el archivo creado localizado en:&lt;br /&gt;
&lt;i&gt; ImgsGrailsApp\grails-app\domain\imgsgrailsapp\Imagen.groovy&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;opcionalmente puedes abrir una interfaz grafica donde se editan comandos groovy&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;escribir el comando:&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: orange; font-size: medium;&quot;&gt;grails console&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;3.3&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;el archivo quedaría de la siguiente forma:&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;font-style: italic;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;display: inline !important;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: blue;&quot;&gt;&lt;i&gt;class Imagen {&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: blue;&quot;&gt;&lt;i&gt;    Date lastUpdated&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: blue;&quot;&gt;&lt;i&gt;    Date dateCreated&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: blue;&quot;&gt;&lt;i&gt;    byte[] screenshot&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: blue;&quot;&gt;&lt;i&gt;&lt;br /&gt;
&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: blue;&quot;&gt;&lt;i&gt;    static constraints = {&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: blue;&quot;&gt;&lt;i&gt;        screenshot(maxSize:1073741824)&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: blue;&quot;&gt;&lt;i&gt;    }&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: blue;&quot;&gt;&lt;i&gt;}&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-style: italic;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-style: italic;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;4&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;crear el controlador: escribir en consola:&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-style: italic;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: orange;&quot;&gt;grails create-controller imagen&lt;/span&gt;&lt;/div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;4.2&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;editar el archivo creado localizado en:&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;&lt;i&gt; ImgsGrailsApp\grails-app\controllers\imgsgrailsapp\ImagenController.groovy&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;4.3&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;añadimos el siguiente codigo:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #333333; font-family: Georgia, &#39;Times New Roman&#39;, Times, serif; font-size: 13px; line-height: 22px;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Georgia, &#39;Times New Roman&#39;, Times, serif; font-size: 13px; line-height: 22px;&quot;&gt;&lt;i&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: blue;&quot;&gt;def scaffold = Imagen&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #333333; font-family: Georgia, &#39;Times New Roman&#39;, Times, serif; font-size: 13px; line-height: 22px;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: blue;&quot;&gt;&lt;i&gt;    def showImage = {&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: blue;&quot;&gt;&lt;i&gt;        def imagen = Imagen.get( params.id )&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: blue;&quot;&gt;&lt;i&gt;        response.outputStream &amp;lt;&amp;lt; imagen.screenshot&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: blue;&quot;&gt;&lt;i&gt;        response.outputStream.flush()&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: blue;&quot;&gt;&lt;i&gt;    }&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;5&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;generamos las vistas: escribir el comando:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: orange;&quot;&gt;grails generate-views imagen&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;nos creara los archivos de edición, crear, listar y mostrar de la clase Imagen&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;localizados en:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;i&gt;ImgsGrailsApp\grails-app\views\imagen&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;i&gt;5.1&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;i&gt;abrimos el archivo: &lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;&lt;i&gt;ImgsGrailsApp\grails-app\views\imagen\list.gsp&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;en este archivo esta lo que se va a mostrar cuando se vea la lista de &lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;imágenes&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;-vamos a la linea donde esta &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;white-space: pre;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: blue;&quot;&gt;    &amp;lt;g:each in=&quot;${imagenInstanceList}&quot; status=&quot;i&quot; var=&quot;imagenInstance&quot;&amp;gt;      &amp;lt;tr class=&quot;${(i % 2) == 0 ? &#39;even&#39; : &#39;odd&#39;}&quot;&amp;gt;            &amp;lt;td&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;- a partir de aquí modificamos este td y quedaría de la siguiente manera&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: blue;&quot;&gt;&amp;lt;g:link action=&quot;show&quot; id=&quot;${imagenInstance.id}&quot;&amp;gt;${fieldValue(bean: imagenInstance, field: &quot;id&quot;)}&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: blue;&quot;&gt;&amp;nbsp; &amp;lt;img width=&quot;20%&quot; height=&quot;20%&quot; alt=&quot;Img&quot; src=&quot;http://localhost:8080/ImgsGrailsApp/imagen/showImage/${imagenInstance.id}&quot;&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: blue;&quot;&gt;&amp;lt;/g:link&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;5.2&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;i&gt;abrimos el archivo: &lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;&lt;i&gt;ImgsGrailsApp\grails-app\views\imagen\show.gsp&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;en este archivo esta lo que se va a mostrar cuando se vea una de &lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;imágen&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;-vamos a la linea donde esta&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: blue;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;&amp;lt;ol class=&quot;property-list imagen&quot;&amp;gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: blue;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;    &lt;/span&gt;&amp;lt;g:if test=&quot;${imagenInstance?.screenshot}&quot;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: blue;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;    &lt;/span&gt;&amp;lt;li class=&quot;fieldcontain&quot;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: blue;&quot;&gt;&amp;lt;span id=&quot;screenshot-label&quot; class=&quot;property-label&quot;&amp;gt;&amp;lt;g:message code=&quot;imagen.screenshot.label&quot; default=&quot;Screenshot&quot; /&amp;gt;&amp;lt;/span&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;-a partir de aqui añadimos el siguiente código, quedaría antes de cerrar el li&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: blue;&quot;&gt;&amp;lt;g:link action=&quot;showImage&quot; id=&quot;${imagenInstance.id}&quot;&amp;gt;${fieldValue(bean: imagenInstance, field: &quot;id&quot;)}&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: blue;&quot;&gt;&amp;nbsp; &amp;lt;img alt=&quot;img&quot; src=&quot;http://localhost:8080/ImgsGrailsApp/imagen/showImage/${imagenInstance.id}&quot;&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: blue;&quot;&gt;&amp;lt;/g:link&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;6&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;probamos la aplicación: escribimos el comando:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: orange;&quot;&gt;grails run-app&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://grailsfacilito.blogspot.com/feeds/1830143281046214504/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://grailsfacilito.blogspot.com/2011/07/guardar-imagen-en-base-de-datos-grails.html#comment-form' title='5 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2807538408803254147/posts/default/1830143281046214504'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2807538408803254147/posts/default/1830143281046214504'/><link rel='alternate' type='text/html' href='http://grailsfacilito.blogspot.com/2011/07/guardar-imagen-en-base-de-datos-grails.html' title='Guardar Imagen en Base de Datos - Grails'/><author><name>regh</name><uri>http://www.blogger.com/profile/10982628756721687344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2807538408803254147.post-1248082454518572266</id><published>2011-07-05T21:34:00.000-07:00</published><updated>2011-07-05T21:46:30.651-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Guía de Referencia GRAILS - The Grails Framework - Reference Documentation"/><title type='text'>Guía de Referencia GRAILS</title><content type='html'>&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;br /&gt;Bienvenidos a GrailsFacilito&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Navegando por la red me encontre con esté sitio interesante sobre Grails.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;b&gt;Descripción:&lt;/b&gt;&lt;br /&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Documentación de Referencias del Framework Grails&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Básicamente tiene desde como instar, comandos basicos, medios y avanzados de controladores, clases de dominio, plugins, servicios, etc.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Ver:&lt;br /&gt;&lt;a href=&quot;http://grails.org/doc/1.0.x/&quot;&gt;http://grails.org/doc/1.0.x/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://grailsfacilito.blogspot.com/feeds/1248082454518572266/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://grailsfacilito.blogspot.com/2011/07/gui-de-referencia-grails.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2807538408803254147/posts/default/1248082454518572266'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2807538408803254147/posts/default/1248082454518572266'/><link rel='alternate' type='text/html' href='http://grailsfacilito.blogspot.com/2011/07/gui-de-referencia-grails.html' title='Guía de Referencia GRAILS'/><author><name>regh</name><uri>http://www.blogger.com/profile/10982628756721687344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2807538408803254147.post-6677639793550357963</id><published>2011-06-29T12:44:00.000-07:00</published><updated>2011-11-07T17:47:56.012-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="clase"/><category scheme="http://www.blogger.com/atom/ns#" term="control"/><category scheme="http://www.blogger.com/atom/ns#" term="dominio"/><category scheme="http://www.blogger.com/atom/ns#" term="grails"/><category scheme="http://www.blogger.com/atom/ns#" term="mysql"/><category scheme="http://www.blogger.com/atom/ns#" term="REGH"/><title type='text'>Catalogo Clientes App - Grails and MySQL</title><content type='html'>&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;Creando una Aplicación en Grails y MySQL&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;b&gt;Descripción:&lt;/b&gt;&lt;br /&gt;
App de un pequeño catalogo de clientes con conexión a MySQL:&lt;br /&gt;
&lt;b&gt;Nivel:&lt;/b&gt;&lt;br /&gt;
&lt;div&gt;Medio&lt;br /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot;&gt;1&lt;br /&gt;
&lt;/span&gt;&lt;b&gt;crear aplicación:&lt;/b&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;grails create-app catalogoClientes&lt;br /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;2&lt;br /&gt;
&lt;/span&gt;&lt;b&gt;crear clase de dominio:&lt;/b&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;grails create-domain-class catalogoClientes.persona&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;3&lt;br /&gt;
&lt;/span&gt;&lt;b&gt;modificar la clase de dominio persona:&lt;/b&gt;&lt;/div&gt;&lt;div&gt;ruta:\CatalogoClientes\grails-app\domain\catalogoclientes\Persona.groovy&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;package catalogoclientes &lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt; class Persona { &lt;/div&gt;&lt;div&gt;String nombre &lt;/div&gt;&lt;div&gt;String apellidoPaterno &lt;/div&gt;&lt;div&gt;String apellidoMaterno &lt;/div&gt;&lt;div&gt;String direccion &lt;/div&gt;&lt;div&gt;String email &lt;/div&gt;&lt;div&gt;String telefono &lt;/div&gt;&lt;div&gt;String codigoPostal &lt;/div&gt;&lt;div&gt;int edad&lt;/div&gt;&lt;div&gt;static constraints = { &lt;/div&gt;&lt;div&gt;nombre(blank:false) &lt;/div&gt;&lt;div&gt;apellidoPaterno(blank:false) &lt;/div&gt;&lt;div&gt;apellidoMaterno(blank:false) &lt;/div&gt;&lt;div&gt;email(email:true) &lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt; } &lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;4&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;crear la clase de controlador:&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;grails create-controller catalogoClientes.PersonaController&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;5&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;modificar la clase de controlador:&lt;/b&gt;&lt;br /&gt;
ruta:\CatalogoClientes\grails-app\controllers\catalogoclientes\PersonaController.groovy&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;div&gt;package catalogoclientes&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;class PersonaController {&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;def scaffold = catalogoclientes.Persona&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #000099; font-size: x-large;&quot;&gt;6&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;requisitos de conexión&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;se debe de tener:&lt;/li&gt;
&lt;li&gt;en la &quot;ruta:\CatalogoClientes\lib&quot; el conector de MySQL mysql-connector-java-5.1.7-bin ó mysql-connector-java-5.1.10-bin&lt;/li&gt;
&lt;/ul&gt;&lt;div&gt;Descarga de las librerias para conectar a MySQL:&lt;/div&gt;&lt;a href=&quot;https://docs.google.com/#folders/0Bz2NN7G43mJYOGMyZDQ1MTgtZWExNS00OWY5LTg4ODYtNjdkNTJiYzQ4MTEy&quot; target=&quot;_blank&quot;&gt;https://docs.google.com/#folders/0Bz2NN7G43mJYOGMyZDQ1MTgtZWExNS00OWY5LTg4ODYtNjdkNTJiYzQ4MTEy&lt;/a&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;hay que tener ejecutandose XAMPP, Apache y MySQL&lt;/li&gt;
&lt;li&gt;en PHPMyAdmin, he creado la BD llamada &quot;catalogoclientes&quot;&lt;/li&gt;
&lt;/ul&gt;&lt;div&gt;&lt;b&gt;&lt;u&gt;modificar la conexion:&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;ruta:\CatalogoClientes\grails-app\conf\DataSource.groovy&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;div&gt;dataSource {&lt;/div&gt;&lt;div&gt;pooled = true&lt;/div&gt;&lt;div&gt;driverClassName = &quot;com.mysql.jdbc.Driver&quot;&lt;/div&gt;&lt;div&gt;username = &quot;root&quot;&lt;/div&gt;&lt;div&gt;password = &quot;&quot;   // your mysql password here&lt;/div&gt;&lt;div&gt;dialect = &quot;org.hibernate.dialect.MySQL5InnoDBDialect&quot;    &lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;div&gt;hibernate {&lt;/div&gt;&lt;div&gt;cache.use_second_level_cache=true&lt;/div&gt;&lt;div&gt;cache.use_query_cache=true&lt;/div&gt;&lt;div&gt;cache.provider_class=&#39;com.opensymphony.oscache.hibernate.OSCacheProvider&#39;&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;div&gt;// environment specific settings&lt;/div&gt;&lt;div&gt;environments {&lt;/div&gt;&lt;div&gt;development {&lt;/div&gt;&lt;div&gt;dataSource {&lt;/div&gt;&lt;div&gt;dbCreate = &quot;update&quot;  // one of &#39;create&#39;, &#39;create-drop&#39;,&#39;update&#39;&lt;/div&gt;&lt;div&gt;url = &quot;jdbc:mysql://localhost/catalogoclientes&quot;&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;div&gt;test {&lt;/div&gt;&lt;div&gt;dataSource {&lt;/div&gt;&lt;div&gt;dbCreate = &quot;update&quot;&lt;/div&gt;&lt;div&gt;url = &quot;jdbc:mysql://localhost/catalogoclientes&quot;&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;div&gt;production {&lt;/div&gt;&lt;div&gt;dataSource {&lt;/div&gt;&lt;div&gt;dbCreate = &quot;update&quot;&lt;/div&gt;&lt;div&gt;url = &quot;jdbc:mysql://localhost/catalogoclientes&quot;&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;div&gt;}    &lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;7&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;correr aplicación:&lt;/b&gt;&lt;/div&gt;&lt;div&gt;grails run-app catalogoclientes&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://grailsfacilito.blogspot.com/feeds/6677639793550357963/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://grailsfacilito.blogspot.com/2011/06/catalogo-clientes-app-grails-mysql.html#comment-form' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2807538408803254147/posts/default/6677639793550357963'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2807538408803254147/posts/default/6677639793550357963'/><link rel='alternate' type='text/html' href='http://grailsfacilito.blogspot.com/2011/06/catalogo-clientes-app-grails-mysql.html' title='Catalogo Clientes App - Grails and MySQL'/><author><name>regh</name><uri>http://www.blogger.com/profile/10982628756721687344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry></feed>