开发者

Spring Roo, Hibernate generates unnecessary foreign key for the primary key column

I'm new to spring mvc, roo and hibernate. I'm using Oracle XE 10g database.

I've created new entity using Roo.

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

Generated java class is bellow:

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

Generated table looks like this:

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" EN开发者_如何转开发ABLE,
    CONSTRAINT "FKC3C2CDFACAB9A04E" FOREIGN KEY ("ID") REFERENCES "TEST"."OPCINA" ("ID") ENABLE,
    CONSTRAINT "FKC3C2CDFA1A1F0EF1" FOREIGN KEY ("ENTITET") REFERENCES "TEST"."ENTITET" ("ID") ENABLE
  );

What is the purpose of

CONSTRAINT "FKC3C2CDFACAB9A04E" FOREIGN KEY ("ID") REFERENCES "TEST"."OPCINA" ("ID") ENABLE,

constraint, and why is it generated? (How can I avoid it?)


You could have switched over to Entitet by accident during your Roo session. Be explicit with the target class:

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

Or switch focus first:

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

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜