java - 属性修饰符不影响items.xml中的数据库,这是为什么呢?

标签 java mysql hsqldb sap-commerce-cloud items

在 Hybris 项目中,我在 items.xml(从 GenericItem 扩展)中创建了“自定义”实体。 经过ant clean allant initialize,所有的表都完美生成了,但是optionalunique修饰符没有' 对指定的属性有任何影响。 我的 items.xml 片段:

<attribute qualifier="someQualifier" type="java.lang.Long">
  <description>some desctiontion</description>
  <persistence type="property"/>
  <modifiers optional="false" unique="true"/>
</attribute>

在我的数据库(在 MySQL 和 HSQL 上测试)中,可选和唯一标记属性仍然具有默认值(可空 = true,唯一 = false)。 这可能是什么问题?

最佳答案

这些修饰符是针对相应的 ValidateInterceptor 而不是针对表结构的。 要指定列定义,请使用:

    <persistence type="property">
        <columntype database="mysql">
            <value>int(11) not null</value>
        </columntype>
        ....
    </persistence>

要使其唯一,请将索引定义添加到您的项目类型中

    <indexes>
        <index name="someQualifierIDX" unique="true">
            <key attribute="someQualifier"/>
        </index>
    <indexes>

关于java - 属性修饰符不影响items.xml中的数据库,这是为什么呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42696613/

相关文章:

mysql - XAMPP mysql 无需密码访问

hsqldb - 在内存数据存储中使用 SQL

sql - 如何在HSQL中为每个组选择列中具有最大值的行?

java - 为 Derby DB 使用 PreparedStatement 时出现 SQLException

java - 如何增加 Vaadin 11.0.0 网格中的行高?

java - 如何克隆 CharArrayWriter?

spring - JUnit 4 - 在运行单元测试之前以编程方式创建 HSQLDB 表

java - 方法上的 @Valid 注释 (Java EE 6)

Xampp 服务器上的 Java Applet - 在 jdbc :mysql://localhost:3306/上找不到合适的驱动程序

Java应用程序不断检查表中添加的新行