spring-boot - 您可以从带注释的类生成二级索引 DDL 语句吗?
问题描述
我目前正在使用生成“CREATE TABLE”语句SpannerShemaUtils.getCreateTableDdlStringsForInterleavedHierarchy(Class)
例子
@Table(name = "#{@googleSpannerTablePrefix}Person")
public class Person {
@PrimaryKey
Integer personId;
String name;
Integer age;
}
生成创建表 DDL
SpannerShemaUtils.getCreateTableDdlStringsForInterleavedHierarchy(Person.class)
这产生
CREATE TABLE Person ( personId INT64 , name STRING(MAX) , age INT64 ) PRIMARY KEY ( personId );
如果@googleSpannerTablePrefix bean 设置为“Example”,它会生成这个。
CREATE TABLE ExamplePerson ( personId INT64 , name STRING(MAX) , age INT64 ) PRIMARY KEY ( personId );
@Table 注释允许 sPel 表达式(见上文),因此我可以为表名添加前缀。
有没有办法以同样的方式生成 Create index DDL 语句?
解决方案
我检查了 api 文档。https://docs.oracle.com/javaee/7/api/javax/persistence/Index.html 和以下代码可能有效。你能试试这个吗?
@Table(name = "#{@googleSpannerTablePrefix}Person",
indexes=[@Index(name="#{@googleSpannerTablePrefix}Person_1", columnList="name")])
推荐阅读
- go - 为什么 Golang 像这样在 atoi.go 中处理截止?
- vuejs2 - 我们可以在 element-ui 下拉列表的命令属性中传递 vue 数据对象吗?
- nlp - QA问题系统中多个正确答案的评价指标
- python - 如何构造一个将类似元组的参数作为输入传递的函数?
- python - 读取和写入 csv 到同一位置时,Pyspark 文件被删除
- scala - 一个“简单”的 Scala 问题,但我花了很长时间来调试
- xcode12 - 在 Xcode 12 中,在 Info.plist 文件列中扩展或调整大小以缩放不起作用
- python - SyntaxError:invalid token -Python 列表
- c# - 是否可以通过 OrderBy 方法使用数组?
- node.js - NodeJS GET 请求在本地机器上工作,但不在远程 VM 内