使用 JPA 创建列存储 table
Create column store table using JPA
我正在尝试在 HANA 数据库上使用 JPA 设置 table。
我想将 table 设置为列存储(默认为行存储)。
寻求您的帮助,找到注释以便使用代码设置 table 而不是每次都手动更改它。
谢谢。
这是我的代码示例:
@Entity
@Table(name = "ACCOUNT")
@IdClass(Account.class)
@Data
public class Account {
@Id
@Column(name = "NAME", length = 32)
protected String landscape;
@Id
@Column(name = "ACCOUNT", length = 32)
protected String accountName;
}
看来你做不到。 link:
中引用的文档
https://archive.sap.com/documents/docs/DOC-28976
注意到:
Column tables cannot be generated by JPA Entities as for now (no
provider’s support Column table annotations yet).
经过短暂的调查,我发现我无法使用 JPA,但我有另一个使用 Liquid-Base 的解决方案。
创建更改日志并使用列存储的命令:
<?xml version="1.0" encoding="UTF-8"?>
<databaseChangeLog
xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog
http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.1.xsd">
<changeSet author="myapplication" id="myid">
<validCheckSum>ANY</validCheckSum>
<preConditions onFail="MARK_RAN">
<not>
<tableExists tableName="TABLE_NAME"/>
</not>
</preConditions>
<sql>
ALTER TABLE SCHEMA.TABLE_NAME COLUMN
</sql>
</changeSet>
</databaseChangeLog>
另一种选择是将默认 table 类型从 row
更改为 column
。
这可以通过在 indexserver.ini
配置文件的 sql
部分设置参数 default_table_type
来完成。
虽然 SAP HANA 1 和 SAP HANA 2 到 SPS2 的交付默认设置为 row
,但 SAP 将 SAP HANA 2 SPS3 中的交付默认设置更改为 column
。
我正在尝试在 HANA 数据库上使用 JPA 设置 table。
我想将 table 设置为列存储(默认为行存储)。
寻求您的帮助,找到注释以便使用代码设置 table 而不是每次都手动更改它。
谢谢。
这是我的代码示例:
@Entity
@Table(name = "ACCOUNT")
@IdClass(Account.class)
@Data
public class Account {
@Id
@Column(name = "NAME", length = 32)
protected String landscape;
@Id
@Column(name = "ACCOUNT", length = 32)
protected String accountName;
}
看来你做不到。 link:
中引用的文档https://archive.sap.com/documents/docs/DOC-28976
注意到:
Column tables cannot be generated by JPA Entities as for now (no provider’s support Column table annotations yet).
经过短暂的调查,我发现我无法使用 JPA,但我有另一个使用 Liquid-Base 的解决方案。 创建更改日志并使用列存储的命令:
<?xml version="1.0" encoding="UTF-8"?>
<databaseChangeLog
xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog
http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.1.xsd">
<changeSet author="myapplication" id="myid">
<validCheckSum>ANY</validCheckSum>
<preConditions onFail="MARK_RAN">
<not>
<tableExists tableName="TABLE_NAME"/>
</not>
</preConditions>
<sql>
ALTER TABLE SCHEMA.TABLE_NAME COLUMN
</sql>
</changeSet>
</databaseChangeLog>
另一种选择是将默认 table 类型从 row
更改为 column
。
这可以通过在 indexserver.ini
配置文件的 sql
部分设置参数 default_table_type
来完成。
虽然 SAP HANA 1 和 SAP HANA 2 到 SPS2 的交付默认设置为 row
,但 SAP 将 SAP HANA 2 SPS3 中的交付默认设置更改为 column
。