我当前正在生成"创建表格";使用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被设置为";实例";它将生成此。
CREATE TABLE ExamplePerson ( personId INT64 , name STRING(MAX) , 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语句;即在代码中没有对处理表CCD_ 2的引用。
这个项目有一个开源的Github回购;如果您希望对此提供支持,您可以在Issue Tracker中提交功能请求:https://github.com/GoogleCloudPlatform/spring-cloud-gcp/issues