[persistence]解决AbstractDevotedDatabaseModelResolver处理join表是否多元属性逻辑错误问题

This commit is contained in:
datagear 2018-10-23 21:15:52 +08:00
parent ce457c845d
commit f7a894099c
1 changed files with 6 additions and 11 deletions

View File

@ -49,6 +49,7 @@ import org.datagear.persistence.features.ColumnConverter;
import org.datagear.persistence.features.ColumnName;
import org.datagear.persistence.features.JdbcType;
import org.datagear.persistence.features.KeyRule;
import org.datagear.persistence.features.KeyRule.RuleType;
import org.datagear.persistence.features.MappedBy;
import org.datagear.persistence.features.ModelKeyColumnName;
import org.datagear.persistence.features.ModelKeyDeleteRule;
@ -61,7 +62,6 @@ import org.datagear.persistence.features.PropertyKeyPropertyName;
import org.datagear.persistence.features.PropertyKeyUpdateRule;
import org.datagear.persistence.features.RelationPoint;
import org.datagear.persistence.features.TableName;
import org.datagear.persistence.features.KeyRule.RuleType;
import org.datagear.persistence.mapper.RelationMapper;
import org.datagear.persistence.mapper.RelationMapperResolver;
import org.springframework.core.convert.ConversionService;
@ -1355,15 +1355,11 @@ public abstract class AbstractDevotedDatabaseModelResolver implements DevotedDat
{
boolean isCollection = true;
List<String> jtableFkColumnNameList = new ArrayList<String>();
jtableFkColumnNameList.addAll(Arrays.asList(getFkColumnNamesForImportedKeyInfo(modelImportedKeyInfos)));
jtableFkColumnNameList.addAll(Arrays.asList(getFkColumnNamesForImportedKeyInfo(propertyImportedKeyInfos)));
String[] jtableMfkColumnName = getFkColumnNamesForImportedKeyInfo(modelImportedKeyInfos);
String[] jtableFkColumnName = jtableFkColumnNameList.toArray(new String[jtableFkColumnNameList.size()]);
// 如果join表内的模型端外键是主键或者唯一键则说明是单元属性否则是多元属性
// 如果属性表内的外键是主键或者唯一键则说明是单元属性
if (equalsIgnoreOrder(jtableFkColumnName, joinEntireTableInfo.getPrimaryKeyColumnNames()))
if (equalsIgnoreOrder(jtableMfkColumnName, joinEntireTableInfo.getPrimaryKeyColumnNames()))
isCollection = false;
else
{
@ -1373,7 +1369,7 @@ public abstract class AbstractDevotedDatabaseModelResolver implements DevotedDat
{
for (String[] jtableUkColumnName : jtableUkColumnNames)
{
if (equalsIgnoreOrder(jtableFkColumnName, jtableUkColumnName))
if (equalsIgnoreOrder(jtableMfkColumnName, jtableUkColumnName))
{
isCollection = false;
break;
@ -2753,8 +2749,7 @@ public abstract class AbstractDevotedDatabaseModelResolver implements DevotedDat
* 注意此方法不能在{@linkplain #doResolve(Connection, ModelManager, ModelManager, String, String)}内部调用
* </p>
* <p>
* 注意要等所有{@linkplain org.datagear.persistence.features}
* 特性都解析设置完成后才能执行此方法
* 注意要等所有{@linkplain org.datagear.persistence.features} 特性都解析设置完成后才能执行此方法
* </p>
*
* @param model