[
https://issues.apache.org/jira/browse/DDLUTILS-270?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13136595#comment-13136595
]
Sean Xiong commented on DDLUTILS-270:
-------------------------------------
One possible solution I found it that just using LinkedHashmap rather than
Hashmap.
The updated implementation shown below:
/**
* Derives the column values for the given dyna properties from the dyna
bean.
*
* @param properties The properties
* @param bean The bean
* @return The values indexed by the column names
*/
protected HashMap toColumnValues(SqlDynaProperty[] properties, DynaBean
bean)
{
HashMap result = new LinkedHashMap();
for (int idx = 0; idx < properties.length; idx++)
{
result.put(properties[idx].getName(),
bean == null ? null :
bean.get(properties[idx].getName()));
}
return result;
}
> Bug on PlatformImplBase.java of /src/org/apache/ddlutils/platform
> -----------------------------------------------------------------
>
> Key: DDLUTILS-270
> URL: https://issues.apache.org/jira/browse/DDLUTILS-270
> Project: DdlUtils
> Issue Type: Bug
> Components: Core (No specific database)
> Affects Versions: 1.0
> Reporter: Sean Xiong
> Assignee: Thomas Dudziak
>
> Bug found in Method protected HashMap toColumnValues(SqlDynaProperty[]
> properties, DynaBean bean).
> Description: exception will thrown in the case of tables with composite
> primary keys and the pk columns are in different types.
> Use case throw exception: Table 'Employee' has a composite primary key with
> the combination of two columns: {int: emplyeeid, string LastName}.
> Exception may thrown because of the
> keyset and values stored in Hashmap may disordered and give the value of
> "LastName" to the key of "emplyid";
> Reason: Hashmap is used at here for storage and the items stored in Hashmap
> are not sorted properly.
> /**
> * Derives the column values for the given dyna properties from the dyna
> bean.
> *
> * @param properties The properties
> * @param bean The bean
> * @return The values indexed by the column names
> */
> protected HashMap toColumnValues(SqlDynaProperty[] properties, DynaBean
> bean)
> {
> HashMap result = new HashMap();
> for (int idx = 0; idx < properties.length; idx++)
> {
> result.put(properties[idx].getName(),
> bean == null ? null :
> bean.get(properties[idx].getName()));
> }
> return result;
> }
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira