Skip to content

Commit 9ab30ce

Browse files
committed
Release 3.3.11
1 parent fd06e33 commit 9ab30ce

3 files changed

Lines changed: 16 additions & 7 deletions

File tree

annotations/src/main/java/net/staticstudios/data/ManyToMany.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,4 +21,11 @@
2121
String joinTable() default "";
2222

2323
String joinTableSchema() default "";
24+
25+
/**
26+
* Should a foreign key constraint be created for this relation?
27+
*
28+
* @return Whether to create a foreign key constraint
29+
*/
30+
boolean fkey() default true;
2431
}

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ plugins {
44

55
allprojects {
66
group = 'net.staticstudios'
7-
version = '3.3.10-SNAPSHOT'
7+
version = '3.3.11'
88

99
repositories {
1010
mavenCentral()

core/src/main/java/net/staticstudios/data/parse/SQLBuilder.java

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -753,11 +753,13 @@ private void parseManyToManyPersistentCollection(ManyToMany manyToMany, Class<?
753753
// it should always cascade on the join referringTable, but depending on the delete strategy, we may or may not delete the referenced data.
754754
// impl with a trigger?
755755

756-
ForeignKey foreignKeyJoinToDataTable = new ForeignKey("pc_m2m", joinSchema.getName(), joinTable.getName(), schema.getName(), table.getName(), onDelete);
757-
ForeignKey foreignKeyJoinToReferenceTable = new ForeignKey("pc_m2m", joinSchema.getName(), joinTable.getName(), referencedSchema.getName(), referencedTable.getName(), onDelete);
758-
joinTableToDataTableLinks.forEach(foreignKeyJoinToDataTable::addLink);
759-
joinTableToReferencedTableLinks.forEach(foreignKeyJoinToReferenceTable::addLink);
760-
joinTable.addForeignKey(foreignKeyJoinToDataTable);
761-
joinTable.addForeignKey(foreignKeyJoinToReferenceTable);
756+
if (manyToMany.fkey()) {
757+
ForeignKey foreignKeyJoinToDataTable = new ForeignKey("pc_m2m", joinSchema.getName(), joinTable.getName(), schema.getName(), table.getName(), onDelete);
758+
ForeignKey foreignKeyJoinToReferenceTable = new ForeignKey("pc_m2m", joinSchema.getName(), joinTable.getName(), referencedSchema.getName(), referencedTable.getName(), onDelete);
759+
joinTableToDataTableLinks.forEach(foreignKeyJoinToDataTable::addLink);
760+
joinTableToReferencedTableLinks.forEach(foreignKeyJoinToReferenceTable::addLink);
761+
joinTable.addForeignKey(foreignKeyJoinToDataTable);
762+
joinTable.addForeignKey(foreignKeyJoinToReferenceTable);
763+
}
762764
}
763765
}

0 commit comments

Comments
 (0)