Grails域中的自定义16位ID生成器
我希望使用16位随机数作为GORM创建的所有表的ID,而不是GORM创建的ID序列。我需要帮助,知道怎么做。我试过了 静态映射={ id生成器:“uuid2” }Grails域中的自定义16位ID生成器,grails,gorm,Grails,Gorm,我希望使用16位随机数作为GORM创建的所有表的ID,而不是GORM创建的ID序列。我需要帮助,知道怎么做。我试过了 静态映射={ id生成器:“uuid2” } 它不起作用。帮助您可以使用以下简单映射: class Book { static mapping = { id generator:'assigned' } def beforeInsert() { id = YourRandomGenerator.nextInt()
它不起作用。帮助您可以使用以下简单映射:
class Book {
static mapping = {
id generator:'assigned'
}
def beforeInsert() {
id = YourRandomGenerator.nextInt()
}
}
注意使用beforeInsert事件来分配id。
问候。您可以使用以下简单映射:
class Book {
static mapping = {
id generator:'assigned'
}
def beforeInsert() {
id = YourRandomGenerator.nextInt()
}
}
注意使用beforeInsert事件来分配id。
您好。如果您只想做一个自定义生成器,您可以扩展IdentifierGenerator:
class CustomGenerator extends IdentifierGenerator {
Serializable generate(SessionImplementor session, Object object) {
return "myroutine"
}
}
class Book {
String id
static mapping = {
generator:"some.package.CustomGenerator", column:"id", unique:"true"
}
}
如果只需执行自定义生成器,则可以扩展IdentifierGenerator:
class CustomGenerator extends IdentifierGenerator {
Serializable generate(SessionImplementor session, Object object) {
return "myroutine"
}
}
class Book {
String id
static mapping = {
generator:"some.package.CustomGenerator", column:"id", unique:"true"
}
}
您可以创建自定义id生成器,如下所示
public class CustomIdGenerator implements IdentifierGenerator {
public synchronized Serializable generate(final SessionImplementor session, Object obj) {
return GENERATED ID; //return generated id
}
}
现在,如果您希望它仅用于某些特定域。。
然后你可以像这样在映射闭包中完成
mapping = {
id generator:'packagename.CustomIdGenerator'
}
但是,如果希望所有域都使用自定义id生成器,可以像这样在Config.groovy中指定它,它将应用于所有域
grails {
gorm.default.mapping = {
id column: 'id', generator:'packagename.CustomIdGenerator'
}
}
您可以创建自定义id生成器,如下所示
public class CustomIdGenerator implements IdentifierGenerator {
public synchronized Serializable generate(final SessionImplementor session, Object obj) {
return GENERATED ID; //return generated id
}
}
现在,如果您希望它仅用于某些特定域。。
然后你可以像这样在映射闭包中完成
mapping = {
id generator:'packagename.CustomIdGenerator'
}
但是,如果希望所有域都使用自定义id生成器,可以像这样在Config.groovy中指定它,它将应用于所有域
grails {
gorm.default.mapping = {
id column: 'id', generator:'packagename.CustomIdGenerator'
}
}
谢谢,我喜欢为这个查询提供的两个备选方案。非常感谢谢谢,我喜欢为这个查询提供的两个备选方案。非常感谢谢谢,我喜欢为这个查询提供的两个备选方案。非常感谢这肯定不是最好的方法,请参阅下面我的答案,了解更通用的方法。谢谢,我喜欢这两种查询方法。非常感谢这肯定不是最好的方法,请参阅下面我的答案,了解更通用的方法。如何生成id?在您的模拟代码中,您已经编写了生成的ID,但我不确定如何生成下一个ID,如果我想手动生成,您如何生成ID?在模拟代码中,您已经编写了生成的ID,但如果我想手动生成下一个ID,我不确定如何生成