使用 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