Commit a72977b3 authored by beberlei's avatar beberlei

[2.0] DDC-109 - Add support for Unique Constraint in OneToMany unidirectional relations

parent 7bbdac1c
...@@ -338,7 +338,7 @@ class SchemaTool ...@@ -338,7 +338,7 @@ class SchemaTool
} else if ($mapping->isManyToMany() && $mapping->isOwningSide) { } else if ($mapping->isManyToMany() && $mapping->isOwningSide) {
// create join table // create join table
$joinTableColumns = array(); $joinTableColumns = array();
$joinTableOptions = array(); $joinTableOptions = array('primary' => array(), 'uniqueConstraints' => array());
$joinTable = $mapping->getJoinTable(); $joinTable = $mapping->getJoinTable();
// Build first FK constraint (relation table => source table) // Build first FK constraint (relation table => source table)
...@@ -359,6 +359,10 @@ class SchemaTool ...@@ -359,6 +359,10 @@ class SchemaTool
$constraint1['local'][] = $column['name']; $constraint1['local'][] = $column['name'];
$constraint1['foreign'][] = $joinColumn['referencedColumnName']; $constraint1['foreign'][] = $joinColumn['referencedColumnName'];
if($joinColumn['unique'] == true) {
$joinTableOptions['uniqueConstraints'][] = array($joinColumn['name']);
}
if (isset($joinColumn['onUpdate'])) { if (isset($joinColumn['onUpdate'])) {
$constraint1['onUpdate'] = $joinColumn['onUpdate']; $constraint1['onUpdate'] = $joinColumn['onUpdate'];
} }
...@@ -388,6 +392,10 @@ class SchemaTool ...@@ -388,6 +392,10 @@ class SchemaTool
$constraint2['local'][] = $inverseJoinColumn['name']; $constraint2['local'][] = $inverseJoinColumn['name'];
$constraint2['foreign'][] = $inverseJoinColumn['referencedColumnName']; $constraint2['foreign'][] = $inverseJoinColumn['referencedColumnName'];
if($inverseJoinColumn['unique'] == true) {
$joinTableOptions['uniqueConstraints'][] = array($inverseJoinColumn['name']);
}
if (isset($inverseJoinColumn['onUpdate'])) { if (isset($inverseJoinColumn['onUpdate'])) {
$constraint2['onUpdate'] = $inverseJoinColumn['onUpdate']; $constraint2['onUpdate'] = $inverseJoinColumn['onUpdate'];
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment