- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
出于传统兼容性的原因,我尝试在gorm-standalone 5或grails 3.1.16上将以下代码应用于逻辑
@Id
@GeneratedValue(strategy = GenerationType.TABLE, generator = "book_generator")
@TableGenerator(name="book_generator", table="id_generator", schema="bookstore")
@Column(name = "id", updatable = false, nullable = false)
private Long id;
package helloworld
class Book {
Integer id
String name
String author
static constraints = {
id column: 'book_id'
name blank: false
}
static mapping = {
table 'BOOKTABLE'
version false
// id( generator: 'hilo', params: [table: 'BOOK_SEQ', column: 'next_value', max_lo: 1, initial_value: 1, increment_size: 1 ])
id( generator: 'table', strategy: 'enhanced-table', parameters: [name: 'table_name', value: 'BOOK_SEQ', column: 'next_value', initial_value: 1, increment_size: 1 ])
}
}
最佳答案
要实现您在Grails 3.1.16中尝试执行的操作(使用hibernate4或hibernate5)。首先,通过添加到application.yml
文件来确保在启动时创建了架构。
#Add this to any sample apps if you want the schema
environments:
development:
dataSource:
dbCreate: create-drop
url: jdbc:h2:mem:devDb;MVCC=TRUE;LOCK_TIMEOUT=10000;DB_CLOSE_ON_EXIT=FALSE;INIT=CREATE SCHEMA IF NOT EXISTS bookstore
// Works in Grails 3.1.16 with Hibernate4 or Hibernate5
class BookGormTableSequence {
String name
String author
static mapping = {
version false
id column: "book_id",
generator: "enhanced-table",
params: [schema: "BOOKSTORE", table_name: "BOOK_SEQ", initial_value: 300]
}
}
//Works in Grails 3.1.16, 3.2.x, and 3.3.x
class BookGormSequence {
String name
String author
static mapping = {
version false
id column: "book_id", generator: "sequence", params: [sequence_name: "bookGormseq", initial_value: 200]
}
}
generator: "enhanced-table"
。 “序列”生成器将在所有测试版本中工作。一旦Gorm 6.1.x可用,则JPA映射为
supported。这意味着您的原始语法几乎不需要修改就可以使用。
// Table Sequence as in your question
import javax.persistence.*
@Entity
class BookJpaTableSequence {
@Id
@TableGenerator(name="book_generator", table="BOOK_SEQ", schema="bookstore", initialValue = 55)
@GeneratedValue(strategy = GenerationType.TABLE, generator = "book_generator")
@Column(name = "book_id", updatable = false, nullable = false)
Long id
String name
String author
}
// Normal Sequence - Should be more performant.
import javax.persistence.*
@Entity
class BookJpaSequence {
@Id
@SequenceGenerator(name = "book_generator", sequenceName = "bookJpaSeq", initialValue = 500)
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "book_generator")
@Column(name = "book_id", updatable = false, nullable = false)
Long id
String name
String author
}
关于spring-boot - 如何在gorm-standalone/grails上使用TableGenerator策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48269106/
我已经成功地将 @TableGenerator 与 EclipseLink 结合使用: @Id @TableGenerator(name = "ID_GEN", table = "se
我将尝试使用表生成器生成主键。但是当我在我的表中插入 6 条记录时,primaryKey 表只显示一个值。这是下面的代码 我的实体类 package com.generatorvaluetest.do
你能告诉我什么时候使用它吗?为什么我要创建一个新表只是为了保留主键,而现在大多数 DBMS 都支持自增并且你可以轻松调整它? 最佳答案 TableGenerator 的主要优点是可移植性,这是保证适用
我有一个表,该表具有使用表生成器生成的主键: @TableGenerator(名称 =“resourceIdGenerator”,表 =“SEQUENCE”,pkColumnName =“NAME”,
我有下面的实体,它使用 TABLE 策略来生成 id,并且工作得很好。 @Entity @Table(name = "Test_Table") public class SomeEntity impl
我有一个带有@Id 和@TableGenerator 的“狗”实体 ... @TableGenerator(table = "seq", name = "dog_gen", pkColumnName
将依赖项从 Spring 4.1.6.RELEASE 更新到 5.1.4.RELEASE 并将 Hibernate 4.3.9.Final 更新到 5.4.1.Final 后,我的一些测试用例开始失败
@TableGenerator 技术生成主键有什么好处?为什么我们使用这种技术以及如何使用用于存储生成器的序列名称和值的第三个表来获取数据? 最佳答案 来自链接。 http://en.wikibook
我在我的项目中使用TableGenerator,下面是相同的代码片段。 @GeneratedValue(strategy = GenerationType.TABLE, generator =
在尝试在表中保存新行时,我收到重复的 id 错误并且无法保留数据。它位于我们的舞台环境中,因此我目前无法访问日志,尽管我正在尝试暂时获取它以解决此问题。到目前为止我只有基本的错误消息: Duplica
我正在尝试使用 hibernate JPA 到 Tomcat 中开发后端应用程序。从现在开始,它在使用 JPA 功能的测试中运行良好,并且没有 JPA 服务的第一个版本现在正在运行(文件上传、下载等)
我有以下实体: @Entity @Table(name = "sales", schema = "cust_tables") @Multitenant(MultitenantType.TABLE_PE
我希望我的数据库中所有生成的主键都是负整数。 我定义了一个 TableGenerator: 我假设这会从 -1000000 开始生成第一个 key 并将每个 ID 递增 1。因此下一个 ID 将是
我有一个 JPA 实体,其 TableGenerator 的 AllocationSize=25。如果我手动更新 TableGenerator 表并为其下一个 ID 起始范围指定一个新值,则在当前范围
我有一个具有以下主键生成策略的实体类 @Id @Column(name = "id", nullable = false) @TableGenerator(name = "USERGENERATOR"
这是 JPA 实体架构的摘录 @Entity @Table(name="customer") public class Customer implements Serializ
我有一个基于 Spring 的应用程序,它使用 JPA 2.1 作为持久层。我使用 @TableGenerator 和 @GenerateValue 注释来处理主键 ID 生成。 这些是注释: @Ta
我需要连接到供应商数据库并插入客户数据。用于生成新客户 ID 的序列表存储最后使用的 ID(不是下一个可用的)。我在 jpa 或 hibernate 文档中找不到任何指示告诉 hibernate 将
我在 Spring Boot 1.4.0.RELEASE 的应用程序中使用 hibernate 。 索引的实体看起来类似于: @Entity(name = "SearchableTariffItem"
我们从 Hibernate 4 迁移到 5,一个主要问题是新的生成器,它生成表行的 ID。我们的旧生成器都是基于表的,比如 @TableGenerator(name = TABLE_NAME + "_
我是一名优秀的程序员,十分优秀!