如何解决您可以从带注释的类生成二级索引 DDL 语句吗?
我目前正在使用 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,age INT64 ) PRIMARY KEY ( personId );
@Table 注释允许使用 sPel 表达式(见上文),因此我可以为我的表名添加前缀。
有没有办法以同样的方式生成创建索引 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")])
,
根据我对 SpannerSchemaUtils.java 的研究,使用此类创建二级索引似乎是不可能的。该类只支持为表生成 DDL 语句;即代码中没有处理表 index
的引用。
这个项目有一个开源的 Github 存储库;如果您需要对此的支持,您可以在问题跟踪器中提交功能请求:https://github.com/GoogleCloudPlatform/spring-cloud-gcp/issues
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。