Liferay:如何配置ServiceBuilder使用MySQL生成的主键

Liferay:如何配置ServiceBuilder使用MySQL生成的主键,liferay,liferay-service-builder,Liferay,Liferay Service Builder,我有一个liferay实体(日志表),它有一个由liferay Service Builder(Service.xml)自动生成的主键。 但是,现在外部应用程序需要向同一数据库表添加条目 看看这个要求,我发现只有两个选项可以实现这一点: 如果我可以在service.xml中指定允许该数据库实体使用MySQL生成的主键(而不是Liferay计数器服务),那么Liferay或外部应用程序都可以添加条目而无需担心 如果由于Service Builder的限制而无法使用#1,则唯一的选项是使用外部应用程

我有一个liferay实体(日志表),它有一个由liferay Service Builder(Service.xml)自动生成的主键。 但是,现在外部应用程序需要向同一数据库表添加条目

看看这个要求,我发现只有两个选项可以实现这一点:

  • 如果我可以在service.xml中指定允许该数据库实体使用MySQL生成的主键(而不是Liferay计数器服务),那么Liferay或外部应用程序都可以添加条目而无需担心
  • 如果由于Service Builder的限制而无法使用#1,则唯一的选项是使用外部应用程序的liferay web服务公开此实体,以将条目添加到此db表中

  • 第一点,这不是一个好主意,主键将完全由Liferay管理

    不过,您的第二点是,这是实现您想要的目标的正确方法,请看一看。

    DTD Service Builder 6.2.0 您的问题的答案直接在xml文档描述中

    第一个例子 第二个实现生成的标识符只有在没有 另一个过程是将数据插入到同一个表中。这一实施应该 不能在集群环境中使用,但它确实适用于所有受支持的应用程序 数据库

    示例

    <column
        name="id"
        type="Integer"
        primary="true"
        id-type="increment"
    />
    
    <column
        name="id"
        type="Integer"
        primary="true"
        id-type="identity"
    />
    

    不,它们将由数据库管理。
    public SoftwareKey createSoftwareKey() {
        return softwareKeyPersistence.create(0);
    }