【问题标题】:enums in grails - persisting enum values to domain classesgrails 中的枚举 - 将枚举值持久保存到域类
【发布时间】:2016-02-06 20:43:37
【问题描述】:

我在/src/groovy/ 下创建了枚举类UserType:

public enum UserType {
    USER(1),
    DEVSADMIN(2),
    RESTAURANTADMIN(3)
}

我的域类“用户”是这样的:

class User {
    String  firstName
    String  lastName
    String  emailAddress
    String  contactNumber
    String  password
    String  image
    Date    dateOfBirth

    UserType userType

我的域类仍然具有字符串类型的 user_type 字段而不是枚举。另外我想知道,如何为 user_type 为枚举的域类 USER 保存数据?

寻找具有枚举 groovy 类、域类、控制器和服务的简短示例。

【问题讨论】:

标签: grails enums grails-orm


【解决方案1】:

我找到了解决问题的方法: 我在 path : src/groovy/

创建了一个枚举类“UserType”

枚举类 UserType 看起来像:

public enum UserType {
USER('user'),
DEVSADMIN('devsAdmin'),
RESTAURANTADMIN('restaurantAdmin')
String id

UserType(String id){
    this.id = id
 }
}

域类“用户”,我在其中使用上述枚举类:

class User {
String  firstName
String  lastName
String  emailAddress
String  contactNumber
String  password
String  image
Date    dateOfBirth

UserType userType
static constraints = {
    userType blank : false
  }
 }

控制器中的枚举处理:

class AuthenticationController {

def authenticationService

def userRegistration(){
    Date date = Date.parse("yyyy-MM-dd","1991-01-08")
    authenticationService.userSignUp(   "Abhinandan", "Satpute", abhinandan.satpute@gmail.com", "8796105046", "123", "abc_image",
            date, UserType.RESTAURANTADMIN)
 }
}

使用 Service 持久化枚举值:

class AuthenticationService {

def userSignUp(String firstName, String lastName, String emailAddress, String contactNumber, String password, String image,
               Date dateOfBirth, Enum userType){

    User user   =   new User("firstName" : firstName, "lastName" : lastName, "emailAddress" : emailAddress, "contactNumber" :contactNumber,
            "password" : password, "image" : image, "dateOfBirth" : dateOfBirth, "userType" : userType)
    user.save(flush: true)
 }
}

最后,“用户”表的架构如下所示: 在此表中,“user_type”是在域类中存储为 VARCHAR 的枚举字段。 将记录插入用户表后:

【讨论】:

    猜你喜欢
    • 2011-01-10
    • 1970-01-01
    • 1970-01-01
    • 2012-05-05
    • 1970-01-01
    • 1970-01-01
    • 2013-01-22
    • 2011-01-20
    相关资源
    最近更新 更多