1

我有一个 ejb 2.1 m:n 关系。该表正在自动创建。问题是我想指定将由这种关系创建的表名。

问题:
多对多关系是否有一个属性来指定我要创建哪个表名而不是默认表名(这是关系中涉及的表的串联)?还是有另一种方法可以实现这一目标?


我正在使用的详细信息:

  • XDoclet
  • 日食
  • EJB 2.1
  • jboss-4.2.3.GA

我很确定这个问题足够具体,但无论如何下面是关系代码

/**
 * @ejb.interface-method view-type="both"
 * @ejb.relation
 *     name="empresas-campanhas"
 *     role-name="campanha de empresas"
 *     target-role-name="empresas tem campanhas"
 *     target-ejb="Empresa"
 *     target-multiple="yes"
 * @ejb.value-object
 *     compose="<package>.EmpresaValue"
 *     compose-name="EmpresaValue"
 *     members="<package>.EmpresaLocal"
 *     members-name="EmpresaLocal"
 *     relation="external"
 * @jboss.relation
 *     fk-column="id_empresa"
 *     fk-constraint="true"
 *     related-pk-field="idEmpresa"
 * @jboss.target-relation
 *     fk-column="ID_CampanhaFidelidade"
 *     fk-constraint="true"
 *     related-pk-field="idCampanhaFidelidade"
 */
public abstract Collection getEmpresas();

/**
 * @ejb.interface-method view-type="both"
 */
public abstract void setEmpresas( Collection empresas );

它正在创建表:

campanhafidelidade_empresas_empresa_campanhafidelidade_empresas

但我想指定:

syo_campanhafidelidade_empresas.

4

1 回答 1

1

您应该在getEmpresas()方法中添加以下注释:

@jboss.relation-table table-name="SYO_CampanhaFidelidade_Empresas"
于 2013-07-23T17:30:07.493 回答