WEB开发网
开发学院软件开发Java 使用 Grails 开发 Google App Engine 应用 阅读

使用 Grails 开发 Google App Engine 应用

 2010-06-24 00:00:00 来源:WEB开发网   
核心提示: ToDo 中的关系User 和 UserProfile 是一对一的关系,但是是有主的还是无主的呢?这个可以根据具体情况而定,使用 Grails 开发 Google App Engine 应用(6),User 和 UserProfile 有主的一对一关系如果将 User 和 UserProfile

ToDo 中的关系

User 和 UserProfile 是一对一的关系。但是是有主的还是无主的呢?这个可以根据具体情况而定。

User 和 UserProfile 有主的一对一关系

如果将 User 和 UserProfile 的关系设置为有主的一对一的关系,那么 User 就是 UserProfile 的父实体。父实体(User)的主键为 Long,子实体(UserProfile)的主键为 Key,父实体中可以通过定义一个子实体的字段,在二者之间创建单向的一对一有主关系。User/UserProfile 的 DomainClass 代码参见清单 2、3:

清单 2. User 的 Domain class

 package mulan 
 import javax.persistence.*; 
 @Entity 
 class User implements Serializable { 
  @Id 
 @GeneratedValue(strategy = GenerationType.IDENTITY) 
 Long id  
 @OneToOne(cascade=CascadeType.ALL) 
 UserProfile uprofile 
…… 
 } 

清单 3. UserProfile 的 Domain class

 package mulan 
 import com.google.appengine.api.datastore.Key; 
 import javax.persistence.*; 
 @Entity 
 class UserProfile implements Serializable { 
  @Id 
 @GeneratedValue(strategy = GenerationType.IDENTITY) 
 Key id 
…… 
 } 

处于这种关系下,在新增的时候可以仅对主实体执行 save 操作,参见清单 4:

清单 4. 有主的一对一关系的新增

 User.withTransaction {  
 def userInstance = new User(params) 
 def userpro = new UserProfile(params) 
 userInstance.uprofile=userpro  
 userInstance.save(flush:true)  
…… 
 } 

上一页  1 2 3 4 5 6 7 8 9 10  下一页

Tags:使用 Grails 开发

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接