grails 中的枚举 - 将枚举值持久化到域 类
enums in grails - persisting enum values to domain classes
我在 /src/groovy/
下创建了枚举 class UserType 为:
public enum UserType {
USER(1),
DEVSADMIN(2),
RESTAURANTADMIN(3)
}
我的域 class "User" 就像:
class User {
String firstName
String lastName
String emailAddress
String contactNumber
String password
String image
Date dateOfBirth
UserType userType
我的域 class 仍然具有 user_type 字符串类型的字段,而不是 enum.Also 我想知道,我如何为域 class USER 保留数据哪个 user_type 是枚举?
正在寻找包含枚举 groovy class、域 class、控制器和服务的简短示例。
我找到了解决我的问题的方法:
我在 path 创建了一个枚举 class "UserType" : src/groovy/
Enum Class UserType 看起来像:
public enum UserType {
USER('user'),
DEVSADMIN('devsAdmin'),
RESTAURANTADMIN('restaurantAdmin')
String id
UserType(String id){
this.id = id
}
}
域 class "User" 我在其中使用上面的枚举 class 作为:
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)
}
}
使用服务持久化枚举值:
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)
}
}
最后,table "User" 的架构如下所示:
在这个 table "user_type" 中是在域 class 中存储为 VARCHAR 的枚举字段。
向用户 table 插入记录后:
我在 /src/groovy/
下创建了枚举 class UserType 为:
public enum UserType {
USER(1),
DEVSADMIN(2),
RESTAURANTADMIN(3)
}
我的域 class "User" 就像:
class User {
String firstName
String lastName
String emailAddress
String contactNumber
String password
String image
Date dateOfBirth
UserType userType
我的域 class 仍然具有 user_type 字符串类型的字段,而不是 enum.Also 我想知道,我如何为域 class USER 保留数据哪个 user_type 是枚举?
正在寻找包含枚举 groovy class、域 class、控制器和服务的简短示例。
我找到了解决我的问题的方法: 我在 path 创建了一个枚举 class "UserType" : src/groovy/
Enum Class UserType 看起来像:
public enum UserType {
USER('user'),
DEVSADMIN('devsAdmin'),
RESTAURANTADMIN('restaurantAdmin')
String id
UserType(String id){
this.id = id
}
}
域 class "User" 我在其中使用上面的枚举 class 作为:
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)
}
}
使用服务持久化枚举值:
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)
}
}
最后,table "User" 的架构如下所示:
在这个 table "user_type" 中是在域 class 中存储为 VARCHAR 的枚举字段。