Posted
September 15, 2008
at
Grails66
ต่อจากจาก entry นี้ครับ มาดูการจัดการ GORM Relationship แบบ 1 ต่อ 1 มาดูต่อไปว่าจะจัดการความสัมพันธ์แบบ one-to-many ได้อย่างไร โดยผมจะใช้ตัวอย่างจาก สนุกกับ Active Record ภาค Grails : ค้น, ค้น, ค้น มาเริ่มกันเลยครับ … go go go !!!! กำหนดให้ Domain class 2 ตัวคือ - Writer เก็บข้อมูลของนักเขียน - Book เก้บข้อมูลของหนังสือ Business Rule - หนังสือ 1 เล่มสามารถมีผู้แต่งได้เพียง 1 คน - นักเขียนสามารถเขียนหนังสือได้มากว่า 1 เล่ม ถ้ายังไม่ทำการสร้าง domain class ให้สร้างดังนี้ $grails create-domain-class Writer $grails create-domain-class Book และทำการแก้ไขดังนี้ /domains/Writer.groovy class Writer [...]
Posted
September 28, 2008
at
Grails66
หลังจากที่ผ่านมาได้พูดถึงการจัดการ GORM Relationship แบบ One-to-Many กันแล้วมา entry นี้จะมาพูดถึงการจัดการความสัมพันธ์แบบ many-to-many กันบ้าง เริ่มกันเลย …….. ในการจัดการความสัมพันธ์แบบนี้ โดยทั่วไปนั้นจะสร้าง table กลางขึ้นมาเพื่อเชื่อมความสัมพันธ์กันดังรูป ซึ่งจะมองได้ว่าเป็นมีความสัมพันธ์ขึ้นดังนี้ BookWriter –> Book BookWriter –> Writer เมื่อมาจัดการความสัมพันธ์ลักษณะนี้ใน GORM สามารถทำได้ง่าย โดยจุดสำคัญอยู่ที่ domain class : BookWriter จะเป็นตัวเชื่อมความสัมพันธ์ของ Book และ Writer ดังนี้ Book.groovy class Book { String name } Writer.groovy class Writer { String name } BookWriter.groovy import Writer class BookWriter { static belongsTo = [ book:Book, writer:Writer ] } คำอธิบาย static belongsTo = [ book:Book, writer:Writer ] [...]
Posted
November 29, 2008
at
Grails66
เท่าที่มอง ๆ ดูผมคิดว่า SpringSource มีนโยบายที่เข้มงวดขึ้นเกี่ยวกับคุณภาพของเกรลส์ ทำให้ลำดับการออกน่าจะมีหลาย Beta มากขึ้นก่อนที่ตัวจริงจะออกมา(เดาว่า)พร้อม ๆ กับหนังสือ edition ใหม่ครับ แล้วก็มาลงรายละเอียดกันหน่อยดีกว่าครับว่า GORM ใน 1.1 มีอะไรน่าสนใจบ้าง ระบบ Event ใน GORMตอนนี้มีจุดยิง event เพิ่มขึ้นอีก 3 ตัวเพื่อความสมบูรณ์ครับ นั่นคือ afterInsert, afterUpdate และ afterDelete GORM เ้ก็บ Collection ของ Basic Types ได้แล้วเราประกาศ static hasMany = [a: String, b: Integer] ใน GORM ได้โดยตรงแล้วครับโดยการ implement ในเอกสารบอกไว้ว่าเป็นการสร้าง join table ให้ collection พวกนั้น ปรับปรุง Data Bindingโดยปกติ เราสามารถเรียกใช้ obj.properties = [...]
Posted
December 02, 2008
at
Grails66
ปีหน้าเป็นปีที่หนังสือเกี่ยวกับเกรลส์ทยอยกันมาถล่มแผงเลยทีเดียวครับ เล่มนี้ Grails Persistence with GORM and GSQL ออกเดือนหน้าครับ (มกราคม 2009) ไม่หนาเท่าไหร่ 150 หน้า ผู้เขียนคือ Robert Fischer ถ้าผมจำไม่ผิดเขาคือคนเขียน plugin ชื่อ Autobase ที่เป็นตัว migrate database ครอบบน Liquibase อีกที รู้สึกว่าจะทำให้ง่ายขึ้นโดยการเขียน DSL มาสนับสนุน ส่วนเนื้อหาก็จะเป็นการทำงานกับ GORM และ GSQL (Groovy SQL) ครับ ปล. ของ APress อีกแล้วครับ
Posted
January 19, 2009
at
Grails66
วันนี้ เกรม รอชเชอร์ หัวหน้าโครงการเกรลส์แจ้งในกลุ่มข่าวครับว่า GORM สามารถทำงานกับ SpringMVC ได้โดยตรง (นอกเกรลส์) แล้วโดยโค้ดที่ใช้เป็นโค้ดจากรุ่น1.1 ที่กำลังจะออกช่วงปลายเดือนกุมภาพันธ์ครับ ตัวอย่าง SpringMVC คือแอพพลิเคชั่นคลาสสิก “petclinic” ซึ่งดาวน์โหลดได้จากที่นี่ครับ http://svn.codehaus.org/grails/branches/GRAILS_1_1/samples/petclinic-mvc/ ที่มา กลุ่มข่าวเกรลส์ปรับปรุง: แก้ไข link
Posted
January 20, 2009
at
Grails66
เป็นโพสต์ที่น่าสนใจของ David Turanski ครับ โดยเขาพูดถึงเทคนิคการย้ายแอพพลิเคชั่นที่พัฒนาด้วย Rails มาเป็นเกรลส์ โดยจากที่ผมสังเกตคือการจัด โดเมนคลาสเสียใหม่ด้วยการใช้ความสามารถของ mapping DSL การย้ายในความหมายนี้คือมี database schema ที่สร้างไว้แล้วด้วย Rails ครับ และ David ใช้การ mapping ใน GORM เพื่อจัดการให้ database schema นั้นสามารถใช้ในเกรลส์ต่อได้ ผมยกตัวอย่างโดเมนคลาสคลาสหนึ่งมาแสดงดังนี้ครับ class Post { String title String name String content Date lastUpdated Date dateCreated static constraints = { title(minSize:5, blank:false) name(blank:false) } static hasMany = [ comments : Comment] static [...]