@@ -103,16 +103,29 @@ public String getEntityId(Object obj) throws IllegalAccessException, NoSuchField
103103 public String getSqlCreation (){
104104 if (type == FieldType .ENTITY && fieldClass_relational != null ){
105105 EntityMeta cMeta = Worm .getRegistry ().getTableMeta (fieldClass_relational );
106- if (cMeta .getUniqueKeyColumns ().size () != 1 )
106+ if (cMeta .getUniqueKeyColumns ().size () != 1 )
107107 throw new WormException ("Relational Worm tables need to have only one unique keys" );
108+
108109 WormField key = cMeta .getUniqueKeyColumns ().toArray (WormField []::new )[0 ];
109- StringBuilder sql = new StringBuilder (key .getSqlCreation ());
110- sql .append (", CONSTRAINT FK_" ).append (getName ()).append ("_" ).append (cMeta .getName ()).append (" FOREIGN KEY (" ).append (getName ()).append (") REFERENCES " )
110+
111+ StringBuilder sql = new StringBuilder ();
112+ sql .append (key .getType ().getValue ());
113+ if (key .getLength () > 0 )
114+ sql .append ('(' ).append (key .getLength ()).append (')' );
115+
116+ if (!nullable )
117+ sql .append (" NOT NULL" );
118+
119+ sql .append (", CONSTRAINT FK_" ).append (getName ()).append ("_" ).append (cMeta .getName ())
120+ .append (" FOREIGN KEY (" ).append (getName ()).append (") REFERENCES " )
111121 .append (cMeta .getName ()).append (" (" ).append (key .getName ()).append (")" );
112- if (onDelete != null )
113- sql .append (" ON DELETE " ).append (onDelete .getValue ());
114- if (onUpdate != null )
115- sql .append (" ON UPDATE " ).append (onUpdate .getValue ());
122+
123+ if (onDelete != null )
124+ sql .append (" ON DELETE " ).append (onDelete .name ());
125+
126+ if (onUpdate != null )
127+ sql .append (" ON UPDATE " ).append (onUpdate .name ());
128+
116129 return sql .toString ();
117130 }
118131
0 commit comments