Author: cbegin Date: Sat Feb 10 21:00:24 2007 New Revision: 505839 URL: http://svn.apache.org/viewvc?view=rev&rev=505839 Log: Changed syntax of field mappings to be exactly the same as property mappings. It now decides to use field mappings only if set/get methods do not exist.
Added: ibatis/trunk/java/mapper/mapper2/test/testdomain/FieldAccount.java Modified: ibatis/trunk/java/mapper/mapper2/build/version.properties ibatis/trunk/java/mapper/mapper2/src/com/ibatis/common/beans/ClassInfo.java ibatis/trunk/java/mapper/mapper2/test/com/ibatis/sqlmap/BaseSqlMapTest.java ibatis/trunk/java/mapper/mapper2/test/com/ibatis/sqlmap/DirectFieldMappingTest.java ibatis/trunk/java/mapper/mapper2/test/com/ibatis/sqlmap/maps/Account.xml Modified: ibatis/trunk/java/mapper/mapper2/build/version.properties URL: http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/build/version.properties?view=diff&rev=505839&r1=505838&r2=505839 ============================================================================== --- ibatis/trunk/java/mapper/mapper2/build/version.properties (original) +++ ibatis/trunk/java/mapper/mapper2/build/version.properties Sat Feb 10 21:00:24 2007 @@ -1,5 +1,5 @@ #Build version info -#Sat Feb 10 18:39:04 MST 2007 +#Sat Feb 10 21:56:50 MST 2007 version=2.3.1 -buildDate=2007/02/10 18\:39 -buildNum=681 +buildDate=2007/02/10 21\:56 +buildNum=683 Modified: ibatis/trunk/java/mapper/mapper2/src/com/ibatis/common/beans/ClassInfo.java URL: http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/src/com/ibatis/common/beans/ClassInfo.java?view=diff&rev=505839&r1=505838&r2=505839 ============================================================================== --- ibatis/trunk/java/mapper/mapper2/src/com/ibatis/common/beans/ClassInfo.java (original) +++ ibatis/trunk/java/mapper/mapper2/src/com/ibatis/common/beans/ClassInfo.java Sat Feb 10 21:00:24 2007 @@ -115,10 +115,14 @@ } } if (field.isAccessible()) { - setMethods.put("(" + field.getName() + ")", new SetFieldInvoker(field)); - setTypes.put("(" + field.getName() + ")", field.getType()); - getMethods.put("(" + field.getName() + ")", new GetFieldInvoker(field)); - getTypes.put("(" + field.getName() + ")", field.getType()); + if (!setMethods.containsKey(field.getName())) { + setMethods.put(field.getName(), new SetFieldInvoker(field)); + setTypes.put(field.getName(), field.getType()); + } + if (!getMethods.containsKey(field.getName())) { + getMethods.put(field.getName(), new GetFieldInvoker(field)); + getTypes.put(field.getName(), field.getType()); + } } } if (clazz.getSuperclass() != null) { Modified: ibatis/trunk/java/mapper/mapper2/test/com/ibatis/sqlmap/BaseSqlMapTest.java URL: http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/test/com/ibatis/sqlmap/BaseSqlMapTest.java?view=diff&rev=505839&r1=505838&r2=505839 ============================================================================== --- ibatis/trunk/java/mapper/mapper2/test/com/ibatis/sqlmap/BaseSqlMapTest.java (original) +++ ibatis/trunk/java/mapper/mapper2/test/com/ibatis/sqlmap/BaseSqlMapTest.java Sat Feb 10 21:00:24 2007 @@ -8,6 +8,7 @@ import testdomain.Account; import testdomain.Order; import testdomain.PrivateAccount; +import testdomain.FieldAccount; import javax.sql.DataSource; import java.io.Reader; @@ -52,6 +53,15 @@ return account; } + protected FieldAccount newFieldAccount6() { + FieldAccount account = new FieldAccount(); + account.id(6); + account.firstName("Jennifer"); + account.lastName("Begin"); + account.emailAddress("[EMAIL PROTECTED]"); + return account; + } + protected void assertAccount1(Account account) { assertEquals(1, account.getId()); assertEquals("Clinton", account.getFirstName()); @@ -82,6 +92,13 @@ assertEquals("Jennifer", account.getFirstName()); assertEquals("Begin", account.getLastName()); assertNull(account.getEmailAddress()); + } + + protected void assertFieldAccount6(FieldAccount account) { + assertEquals(6, account.id()); + assertEquals("Jennifer", account.firstName()); + assertEquals("Begin", account.lastName()); + assertNull(account.emailAddress()); } protected void assertAccount1(Map account) { Modified: ibatis/trunk/java/mapper/mapper2/test/com/ibatis/sqlmap/DirectFieldMappingTest.java URL: http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/test/com/ibatis/sqlmap/DirectFieldMappingTest.java?view=diff&rev=505839&r1=505838&r2=505839 ============================================================================== --- ibatis/trunk/java/mapper/mapper2/test/com/ibatis/sqlmap/DirectFieldMappingTest.java (original) +++ ibatis/trunk/java/mapper/mapper2/test/com/ibatis/sqlmap/DirectFieldMappingTest.java Sat Feb 10 21:00:24 2007 @@ -1,6 +1,6 @@ package com.ibatis.sqlmap; -import testdomain.Account; +import testdomain.FieldAccount; import testdomain.PrivateAccount; import java.sql.SQLException; @@ -13,18 +13,18 @@ } public void testInsertAndSelectDirectToFields() throws SQLException { - Account account = newAccount6(); + FieldAccount account = newFieldAccount6(); sqlMap.insert("insertAccountFromFields", account); - account = (Account) sqlMap.queryForObject("getAccountToFields", new Integer(6)); + account = (FieldAccount) sqlMap.queryForObject("getAccountToFields", new Integer(6)); - assertAccount6(account); - assertAccount6(account.getAccount()); + assertFieldAccount6(account); + assertFieldAccount6(account.account()); } public void testGetAccountWithPrivateConstructor() throws SQLException { - Account account = newAccount6(); + FieldAccount account = newFieldAccount6(); sqlMap.insert("insertAccountFromFields", account); Modified: ibatis/trunk/java/mapper/mapper2/test/com/ibatis/sqlmap/maps/Account.xml URL: http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/test/com/ibatis/sqlmap/maps/Account.xml?view=diff&rev=505839&r1=505838&r2=505839 ============================================================================== --- ibatis/trunk/java/mapper/mapper2/test/com/ibatis/sqlmap/maps/Account.xml (original) +++ ibatis/trunk/java/mapper/mapper2/test/com/ibatis/sqlmap/maps/Account.xml Sat Feb 10 21:00:24 2007 @@ -462,7 +462,7 @@ <insert id="insertAccountFromFields" - parameterClass="account" + parameterClass="testdomain.FieldAccount" > insert into ACCOUNT ( ACC_ID, @@ -470,25 +470,25 @@ ACC_LAST_NAME, ACC_EMAIL) values ( - #(id)#, - #(firstName)#, - #(lastName)#, - #(emailAddress):VARCHAR:[EMAIL PROTECTED] + #id#, + #firstName#, + #lastName#, + #emailAddress:VARCHAR:[EMAIL PROTECTED] ) </insert> <select id="getAccountToFields" parameterClass="int" - resultClass="account"> + resultClass="testdomain.FieldAccount"> select - ACC_ID as "(id)", - ACC_FIRST_NAME as "(firstName)", - ACC_LAST_NAME as "(lastName)", - ACC_EMAIL as "(emailAddress)", - ACC_ID as "(account).(id)", - ACC_FIRST_NAME as "(account).(firstName)", - ACC_LAST_NAME as "(account).(lastName)", - ACC_EMAIL as "(account).(emailAddress)" + ACC_ID as "id", + ACC_FIRST_NAME as "firstName", + ACC_LAST_NAME as "lastName", + ACC_EMAIL as "emailAddress", + ACC_ID as "account.id", + ACC_FIRST_NAME as "account.firstName", + ACC_LAST_NAME as "account.lastName", + ACC_EMAIL as "account.emailAddress" from ACCOUNT where ACC_ID = #value# </select> @@ -497,14 +497,14 @@ parameterClass="int" resultClass="testdomain.PrivateAccount"> select - ACC_ID as "(id)", - ACC_FIRST_NAME as "(firstName)", - ACC_LAST_NAME as "(lastName)", - ACC_EMAIL as "(emailAddress)", - ACC_ID as "(account).(id)", - ACC_FIRST_NAME as "(account).(firstName)", - ACC_LAST_NAME as "(account).(lastName)", - ACC_EMAIL as "(account).(emailAddress)" + ACC_ID as "id", + ACC_FIRST_NAME as "firstName", + ACC_LAST_NAME as "lastName", + ACC_EMAIL as "emailAddress", + ACC_ID as "account.id", + ACC_FIRST_NAME as "account.firstName", + ACC_LAST_NAME as "account.lastName", + ACC_EMAIL as "account.emailAddress" from ACCOUNT where ACC_ID = #value# </select> Added: ibatis/trunk/java/mapper/mapper2/test/testdomain/FieldAccount.java URL: http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/test/testdomain/FieldAccount.java?view=auto&rev=505839 ============================================================================== --- ibatis/trunk/java/mapper/mapper2/test/testdomain/FieldAccount.java (added) +++ ibatis/trunk/java/mapper/mapper2/test/testdomain/FieldAccount.java Sat Feb 10 21:00:24 2007 @@ -0,0 +1,52 @@ +package testdomain; + +import java.io.Serializable; + +public class FieldAccount implements Serializable { + + private int id; + private String firstName; + private String lastName; + private String emailAddress; + private FieldAccount account; + + public int id() { + return id; + } + + public void id(int id) { + this.id = id; + } + + public String firstName() { + return firstName; + } + + public void firstName(String firstName) { + this.firstName = firstName; + } + + public String lastName() { + return lastName; + } + + public void lastName(String lastName) { + this.lastName = lastName; + } + + public String emailAddress() { + return emailAddress; + } + + public void emailAddress(String emailAddress) { + this.emailAddress = emailAddress; + } + + public FieldAccount account() { + return account; + } + + public void account(FieldAccount account) { + this.account = account; + } +}