Hello Patrik, thank you for the workaround. It works for me.
/Markus Patrik Nordwall wrote: > > Fixed in trunk. > > If you need a workaround for 1.8.0 you can add this to SpecialCases.ext: > extension extensions::helper; > around extensions::dbhelper::getOppositeForeignKeyName(Reference ref) : > ref.hasHint("joinColumnName") ? > ref.getHint("joinColumnName") : > ctx.proceed(); > > in model.btdesign you use the hint: > - Set<@ContactChannel> contactChannels cascade="all-delete-orphan" > hint="joinColumnName=USERDATA"; > > Another thing. You can't use List for this type of unidirectional to-many > association. I suggest that you use a Bag or Set. If you need List you > should first look at this issue: > http://fornax.itemis.de/jira/browse/CSC-377 > and maybe also this > http://fornax.itemis.de/jira/browse/CSC-491 > > /Patrik > > > Patrik Nordwall wrote: >> >> Thank you for a descriptive bug report. I have added it to jira and >> started to look at it. http://fornax.itemis.de/jira/browse/CSC-494 >> I have reproduced with junit test and I think I have a solution. I need >> to verify a llittle bit more. >> >> /Patrik >> >> Markus Flögel wrote: >>> >>> Hello, >>> >>> i think there is an error in the generation of the JPA annotation in a >>> many-to-many relation when i change the name of the databaseTable for a >>> entity. >>> >>> here is my mode: >>> >>> >>> Entity User >>> { >>> scaffold >>> databaseTable = "USERDATA" >>> String lastName length="256"; >>> String firstName length="256"; >>> - List<@ContactChannel> contactChannels cascade="all-delete-orphan"; >>> } >>> >>> >>> ValueObject ContactChannel >>> { >>> String identifier length="256"; >>> Boolean business; >>> String addon nullable length="256"; >>> } >>> >>> >>> >>> here is a part of the generated DDL for Oracle : >>> >>> CREATE TABLE CONTACTCHANNEL ( >>> ID NUMBER(19) NOT NULL, >>> IDENTIFIER VARCHAR2(256) NOT NULL, >>> BUSINESS CHAR(1) NOT NULL, >>> ADDON VARCHAR2(256), >>> UUID VARCHAR2(36) NOT NULL >>> ); >>> >>> >>> CREATE TABLE USERDATA ( >>> ID NUMBER(19) NOT NULL, >>> LASTNAME VARCHAR2(256) NOT NULL, >>> FIRSTNAME VARCHAR2(256) NOT NULL, >>> UUID VARCHAR2(36) NOT NULL, >>> CREATEDDATE DATE, >>> CREATEDBY VARCHAR2(50), >>> LASTUPDATED DATE, >>> LASTUPDATEDBY VARCHAR2(50), >>> VERSION NUMBER(19) NOT NULL >>> ); >>> >>> >>> >>> -- Create many to many relations >>> >>> CREATE TABLE CONTACTCHANNEL_USERDATA ( >>> CONTACTCHANNEL NUMBER(19) NOT NULL, >>> USERDATA NUMBER(19) NOT NULL >>> ); >>> >>> >>> >>> >>> here is a part of the generated java (User.java): >>> >>> @ManyToMany(cascade = CascadeType.ALL) >>> @JoinTable(name = "CONTACTCHANNEL_USERDATA", joinColumns = >>> @JoinColumn(name = "USER") >>> , inverseJoinColumns = @JoinColumn(name = "CONTACTCHANNEL") >>> ) >>> @ForeignKey(name = "FK_CONTACTCHANNEL_USERDATA_USER", inverseName = >>> "FK_CONTACTCHANNEL_USERDATA_CONTACTCHANNEL") >>> @Cascade(org.hibernate.annotations.CascadeType.DELETE_ORPHAN) >>> @NotNull >>> private List<ContactChannel> contactChannels = >>> new ArrayList<ContactChannel>(); >>> >>> >>> >>> The Problem is the @JoinColumn annotation. It says that the name of the >>> JoinColumn is "USER" but it should be "USERDATA". >>> >>> Markus >>> >>> >>> >> >> > > -- View this message in context: http://old.nabble.com/Sculptor-1.8.0-wrong-annotation-for-ManyToMany-and-own-databaseTable-tp28223373s17564p28288027.html Sent from the Fornax-Platform mailing list archive at Nabble.com. ------------------------------------------------------------------------------ _______________________________________________ Fornax-developer mailing list Fornax-developer@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/fornax-developer