forked from mirror/gorm
Fix many2many join table name rule
This commit is contained in:
parent
d8ddccf147
commit
6e38a2c2d5
|
@ -41,6 +41,10 @@ func (ns NamingStrategy) ColumnName(table, column string) string {
|
||||||
|
|
||||||
// JoinTableName convert string to join table name
|
// JoinTableName convert string to join table name
|
||||||
func (ns NamingStrategy) JoinTableName(str string) string {
|
func (ns NamingStrategy) JoinTableName(str string) string {
|
||||||
|
if strings.ToLower(str) == str {
|
||||||
|
return str
|
||||||
|
}
|
||||||
|
|
||||||
if ns.SingularTable {
|
if ns.SingularTable {
|
||||||
return ns.TablePrefix + toDBName(str)
|
return ns.TablePrefix + toDBName(str)
|
||||||
}
|
}
|
||||||
|
|
|
@ -206,16 +206,16 @@ func TestMany2ManyOverrideJoinForeignKey(t *testing.T) {
|
||||||
|
|
||||||
type User struct {
|
type User struct {
|
||||||
gorm.Model
|
gorm.Model
|
||||||
Profiles []Profile `gorm:"many2many:user_profiles;JoinForeignKey:UserReferID;JoinReferences:ProfileRefer"`
|
Profiles []Profile `gorm:"many2many:user_profile;JoinForeignKey:UserReferID;JoinReferences:ProfileRefer"`
|
||||||
Refer uint
|
Refer uint
|
||||||
}
|
}
|
||||||
|
|
||||||
checkStructRelation(t, &User{}, Relation{
|
checkStructRelation(t, &User{}, Relation{
|
||||||
Name: "Profiles", Type: schema.Many2Many, Schema: "User", FieldSchema: "Profile",
|
Name: "Profiles", Type: schema.Many2Many, Schema: "User", FieldSchema: "Profile",
|
||||||
JoinTable: JoinTable{Name: "user_profiles", Table: "user_profiles"},
|
JoinTable: JoinTable{Name: "user_profile", Table: "user_profile"},
|
||||||
References: []Reference{
|
References: []Reference{
|
||||||
{"ID", "User", "UserReferID", "user_profiles", "", true},
|
{"ID", "User", "UserReferID", "user_profile", "", true},
|
||||||
{"ID", "Profile", "ProfileRefer", "user_profiles", "", false},
|
{"ID", "Profile", "ProfileRefer", "user_profile", "", false},
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue