Spring Roo, Hibernate генерирует ненужный внешний ключ для столбца первичного ключа - PullRequest
1 голос
/ 07 марта 2011

Я новичок в весенних mvc, roo и hibernate.Я использую базу данных Oracle XE 10g.

Я создал новую сущность, используя Roo.

entity --class Opcina
field string --fieldName Naziv
field reference --fieldName Entitet --type ~.domain.Entitet

Сгенерированный класс Java ниже:

import org.springframework.roo.addon.entity.RooEntity;
import org.springframework.roo.addon.javabean.RooJavaBean;
import org.springframework.roo.addon.tostring.RooToString;
import randb.domain.Entitet;
import javax.persistence.ManyToOne;

@RooJavaBean
@RooToString
@RooEntity
public class Opcina {

    private String Naziv;

    @ManyToOne
    private Entitet Entitet;
}

Сгенерированная таблица выглядит следующим образом:

CREATE TABLE "TEST"."OPCINA"
  (
    "ID"      NUMBER(19,0) NOT NULL ENABLE,
    "NAZIV"   VARCHAR2(255 BYTE),
    "VERSION" NUMBER(10,0),
    "ENTITET" NUMBER(19,0),
    PRIMARY KEY ("ID") USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT) TABLESPACE "USERS" ENABLE,
    CONSTRAINT "FKC3C2CDFACAB9A04E" FOREIGN KEY ("ID") REFERENCES "TEST"."OPCINA" ("ID") ENABLE,
    CONSTRAINT "FKC3C2CDFA1A1F0EF1" FOREIGN KEY ("ENTITET") REFERENCES "TEST"."ENTITET" ("ID") ENABLE
  );

Какова цель

CONSTRAINT "FKC3C2CDFACAB9A04E" FOREIGN KEY ("ID") Ссылки "TEST". "OPCINA" ("ID") ENABLE, ограничение

и почему оно генерируется?(Как мне этого избежать?)

1 Ответ

0 голосов
/ 13 декабря 2011

Вы могли случайно переключиться на Entitet во время сеанса Roo.Будьте явны с целевым классом:

field reference --fieldName Entitet --type ~.domain.Entitet --class ~.domain.Opcina

Или сначала переключите фокус:

focus --class ~.domain.Opcina
field reference --fieldName Entitet --type ~.domain.Entitet
...