#533 - DDL - Invalid foreign key constraint name for @ManyToMany when using explicit schema in @Table - Temp testing

This commit is contained in:
Robin Bygrave
2016-01-19 09:57:49 +13:00
parent a70fe184c2
commit 77bcb4aef9
7 changed files with 84 additions and 86 deletions
@@ -18,9 +18,9 @@ public class TestM2MVanilla extends BaseTestCase {
@Test
public void testVanilla() {
SqlUpdate delInt = Ebean.createSqlUpdate("delete from mrole_muser");
SqlUpdate delRoles = Ebean.createSqlUpdate("delete from mrole");
SqlUpdate delUsers = Ebean.createSqlUpdate("delete from muser");
SqlUpdate delInt = Ebean.createSqlUpdate("delete from mys.mrole_muser");
SqlUpdate delRoles = Ebean.createSqlUpdate("delete from mys.mrole");
SqlUpdate delUsers = Ebean.createSqlUpdate("delete from mys.muser");
Ebean.execute(delInt);
Ebean.execute(delRoles);
@@ -1,95 +1,88 @@
package com.avaje.tests.model.basic;
import java.util.List;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.ManyToMany;
import javax.persistence.Table;
import java.util.List;
@Entity
@Table(name = "mrole", schema = "mys")
public class MRole {
@Id
Integer roleid;
String roleName;
@Id
Integer roleid;
@ManyToMany(cascade=CascadeType.ALL
// @JoinTable(name="myint_table"//,
// joinColumns={
// @JoinColumn(name="mroleid", referencedColumnName="roleid")
// }//,
// inverseJoinColumns={
// @JoinColumn(name = "muserid", referencedColumnName="userid")
// }
)
List<MUser> users;
public MRole() {
String roleName;
@ManyToMany(cascade = CascadeType.ALL)
List<MUser> users;
public MRole() {
}
public MRole(String roleName) {
this.roleName = roleName;
}
public Integer getRoleid() {
return roleid;
}
public void setRoleid(Integer roleid) {
this.roleid = roleid;
}
public String getRoleName() {
return roleName;
}
public void setRoleName(String roleName) {
this.roleName = roleName;
}
public List<MUser> getUsers() {
return users;
}
public void setUsers(List<MUser> users) {
this.users = users;
}
@Override
public String toString() {
return "MRole [roleName=" + roleName + "]";
}
@Override
public boolean equals(Object other) {
if (this == other) {
return true;
}
public MRole(String roleName) {
this.roleName = roleName;
// Make sure other is not null and has the same class as this
if (other != null && getClass().equals(other.getClass())) {
final MRole rhs = (MRole) other;
if (roleid.equals(rhs.roleid)) {
if (roleid == 0) {
return false;
} else {
return true;
}
}
}
public Integer getRoleid() {
return roleid;
}
return false;
}
public void setRoleid(Integer roleid) {
this.roleid = roleid;
}
@Override
public int hashCode() {
if (roleid != null && roleid != 0) {
int rid = roleid;
return (int) (rid ^ (rid >>> 32));
}
return super.hashCode();
}
public String getRoleName() {
return roleName;
}
public void setRoleName(String roleName) {
this.roleName = roleName;
}
public List<MUser> getUsers() {
return users;
}
public void setUsers(List<MUser> users) {
this.users = users;
}
@Override
public String toString() {
return "MRole [roleName=" + roleName + "]";
}
@Override
public boolean equals(Object other) {
if (this == other){
return true;
}
// Make sure other is not null and has the same class as this
if (other != null && getClass().equals(other.getClass())){
final MRole rhs = (MRole)other;
if ( roleid.equals(rhs.roleid)){
if (roleid == 0){
return false;
}else{
return true;
}
}
}
return false;
}
@Override
public int hashCode() {
if (roleid != null && roleid != 0){
int rid = roleid;
return (int)( rid ^ (rid >>> 32) );
}
return super.hashCode();
}
}
@@ -6,6 +6,7 @@ import java.util.List;
import javax.persistence.*;
@Entity
@Table(name="muser", schema = "mys")
public class MUser {
@Id
@@ -2,8 +2,10 @@ package com.avaje.tests.model.basic;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name="muser_type", schema = "mys")
public class MUserType {
@Id
@@ -56,8 +56,8 @@ public class TestManyWhereJoinM2M extends BaseTestCase {
String sql = query.getGeneratedSql();
Assert.assertTrue(sql.contains("select distinct"));
Assert.assertTrue(sql.contains("left outer join mrole "));
Assert.assertTrue(sql.contains("join mrole "));
Assert.assertTrue(sql.contains("left outer join mys.mrole "));
Assert.assertTrue(sql.contains("join mys.mrole "));
Assert.assertTrue(sql.contains(".role_name = ?"));
}
@@ -57,7 +57,7 @@ public class TestDisjunctWhereOuterJoin extends BaseTestCase {
String sql = query.getGeneratedSql();
Assert.assertTrue(sql.contains("select distinct"));
Assert.assertTrue(sql.contains("outer join mrole "));
Assert.assertTrue(sql.contains("outer join mys.mrole "));
Assert.assertTrue(sql.contains(".role_name = ?"));
} finally {
+3 -1
View File
@@ -1 +1,3 @@
datasource.h2.username=sa
datasource.h2.username=sa
ebean.ddl.initSql=init.sql