Fixed SF bug #1727034 Method MetadataField.unique() is incorrect for null values

git-svn-id: http://scm.dspace.org/svn/repo/trunk@1994 9c30dcfa-912a-0410-8fc2-9e0234be79fd
This commit is contained in:
James Rutherford
2007-06-07 11:43:11 +00:00
parent 3d16b52fe7
commit c961fb0f6a
2 changed files with 20 additions and 2 deletions

View File

@@ -512,16 +512,31 @@ public class MetadataField
Connection con = context.getDBConnection();
TableRow reg = DatabaseManager.row("MetadataFieldRegistry");
String qualifierClause = "";
if (qualifier == null)
{
qualifierClause = "and qualifier is null";
}
else
{
qualifierClause = "and qualifier = ?";
}
String query = "SELECT COUNT(*) FROM " + reg.getTable()
+ " WHERE metadata_schema_id= ? "
+ " and metadata_field_id != ? "
+ " and element= ? and qualifier= ? ";
+ " and element= ? " + qualifierClause;
PreparedStatement statement = con.prepareStatement(query);
statement.setInt(1,schemaID);
statement.setInt(2,fieldID);
statement.setString(3,element);
statement.setString(4,qualifier);
if (qualifier != null)
{
statement.setString(4,qualifier);
}
ResultSet rs = statement.executeQuery();