使用JPA创建列存储表

时间:2018-12-20 09:23:13

标签: spring jpa spring-data-jpa hana

我正在尝试在HANA DB上使用JPA设置表。

我想将表设置为列存储(默认为行存储)。

寻求帮助,找到注释以便使用代码设置表格,而不是每次都手动更改。

谢谢。

这是我的代码示例:

@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;

}

3 个答案:

答案 0 :(得分:1)

看来你做不到。在此链接中引用的文档:

https://archive.sap.com/documents/docs/DOC-28976

请注意:

  

JPA实体目前无法生成列表(否   提供程序的支持列表注释。)

答案 1 :(得分:0)

经过简短的调查,我发现我不能使用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>

答案 2 :(得分:0)

另一种选择是将默认表类型从row更改为column

这可以通过在default_table_type配置文件的sql部分中设置参数indexserver.ini来完成。

SAP HANA 1和SPS2之前的SAP HANA 2的交付默认设置为row,而SAP HANA 2 SPS3中SAP的交付默认设置为column