Return-Path: Delivered-To: apmail-cayenne-commits-archive@www.apache.org Received: (qmail 40169 invoked from network); 3 Feb 2010 09:54:12 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 3 Feb 2010 09:54:12 -0000 Received: (qmail 10850 invoked by uid 500); 3 Feb 2010 09:54:12 -0000 Delivered-To: apmail-cayenne-commits-archive@cayenne.apache.org Received: (qmail 10831 invoked by uid 500); 3 Feb 2010 09:54:12 -0000 Mailing-List: contact commits-help@cayenne.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@cayenne.apache.org Delivered-To: mailing list commits@cayenne.apache.org Received: (qmail 10822 invoked by uid 99); 3 Feb 2010 09:54:12 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 03 Feb 2010 09:54:12 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 03 Feb 2010 09:54:10 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 73CBE23889E5; Wed, 3 Feb 2010 09:53:50 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r905960 - in /cayenne/main/branches/STABLE-3.0: docs/doc/src/main/resources/ framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/ framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/testdo/inherita... Date: Wed, 03 Feb 2010 09:53:45 -0000 To: commits@cayenne.apache.org From: aadamchik@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20100203095350.73CBE23889E5@eris.apache.org> Author: aadamchik Date: Wed Feb 3 09:53:40 2010 New Revision: 905960 URL: http://svn.apache.org/viewvc?rev=905960&view=rev Log: CAY-1379 Error resolving fault, no matching row exists in the database patch by Victor Antonovich Added: cayenne/main/branches/STABLE-3.0/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/testdo/inheritance_flat/ cayenne/main/branches/STABLE-3.0/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/testdo/inheritance_flat/Group.java cayenne/main/branches/STABLE-3.0/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/testdo/inheritance_flat/GroupProperties.java cayenne/main/branches/STABLE-3.0/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/testdo/inheritance_flat/InheritanceFlat.java cayenne/main/branches/STABLE-3.0/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/testdo/inheritance_flat/Role.java cayenne/main/branches/STABLE-3.0/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/testdo/inheritance_flat/User.java cayenne/main/branches/STABLE-3.0/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/testdo/inheritance_flat/UserProperties.java cayenne/main/branches/STABLE-3.0/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/testdo/inheritance_flat/auto/ cayenne/main/branches/STABLE-3.0/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/testdo/inheritance_flat/auto/_Group.java cayenne/main/branches/STABLE-3.0/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/testdo/inheritance_flat/auto/_GroupProperties.java cayenne/main/branches/STABLE-3.0/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/testdo/inheritance_flat/auto/_InheritanceFlat.java cayenne/main/branches/STABLE-3.0/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/testdo/inheritance_flat/auto/_Role.java cayenne/main/branches/STABLE-3.0/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/testdo/inheritance_flat/auto/_User.java cayenne/main/branches/STABLE-3.0/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/testdo/inheritance_flat/auto/_UserProperties.java cayenne/main/branches/STABLE-3.0/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/unit/jira/CAY_1379Test.java cayenne/main/branches/STABLE-3.0/framework/cayenne-jdk1.5-unpublished/src/test/resources/inheritance-flat.map.xml Modified: cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/RELEASE-NOTES.txt cayenne/main/branches/STABLE-3.0/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/DataRowUtils.java cayenne/main/branches/STABLE-3.0/framework/cayenne-jdk1.5-unpublished/src/test/resources/cayenne.xml cayenne/main/branches/STABLE-3.0/framework/cayenne-jdk1.5-unpublished/src/test/resources/spring-test-resources.xml Modified: cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/RELEASE-NOTES.txt URL: http://svn.apache.org/viewvc/cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/RELEASE-NOTES.txt?rev=905960&r1=905959&r2=905960&view=diff ============================================================================== --- cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/RELEASE-NOTES.txt (original) +++ cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/RELEASE-NOTES.txt Wed Feb 3 09:53:40 2010 @@ -14,6 +14,7 @@ Bug Fixes Since 3.0RC2: +CAY-1379 Error resolving fault, no matching row exists in the database CAY-1382 org.apache.cayenne.reflect.EnumConverter not handling null values for ExtendedEnumerations CAY-1383 unneeded target in modeler attributes inspection Modified: cayenne/main/branches/STABLE-3.0/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/DataRowUtils.java URL: http://svn.apache.org/viewvc/cayenne/main/branches/STABLE-3.0/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/DataRowUtils.java?rev=905960&r1=905959&r2=905960&view=diff ============================================================================== --- cayenne/main/branches/STABLE-3.0/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/DataRowUtils.java (original) +++ cayenne/main/branches/STABLE-3.0/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/DataRowUtils.java Wed Feb 3 09:53:40 2010 @@ -28,7 +28,6 @@ import org.apache.cayenne.map.DbJoin; import org.apache.cayenne.map.DbRelationship; import org.apache.cayenne.map.ObjAttribute; -import org.apache.cayenne.map.ObjEntity; import org.apache.cayenne.map.ObjRelationship; import org.apache.cayenne.reflect.ArcProperty; import org.apache.cayenne.reflect.AttributeProperty; @@ -194,14 +193,12 @@ property.writeProperty(object, null, null); } else { - // if inheritance is involved, we can't use - // 'localObject' + // we can't use 'localObject' if relationship is + // optional or inheritance is involved // .. must turn to fault instead - ObjEntity targetEntity = (ObjEntity) relationship - .getTargetEntity(); - if (context - .getEntityResolver() - .lookupInheritanceTree(targetEntity) != null) { + if (!relationship + .isSourceDefiningTargetPrecenseAndType(context + .getEntityResolver())) { property.invalidate(object); } else { Added: cayenne/main/branches/STABLE-3.0/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/testdo/inheritance_flat/Group.java URL: http://svn.apache.org/viewvc/cayenne/main/branches/STABLE-3.0/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/testdo/inheritance_flat/Group.java?rev=905960&view=auto ============================================================================== --- cayenne/main/branches/STABLE-3.0/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/testdo/inheritance_flat/Group.java (added) +++ cayenne/main/branches/STABLE-3.0/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/testdo/inheritance_flat/Group.java Wed Feb 3 09:53:40 2010 @@ -0,0 +1,7 @@ +package org.apache.cayenne.testdo.inheritance_flat; + +import org.apache.cayenne.testdo.inheritance_flat.auto._Group; + +public class Group extends _Group { + +} Added: cayenne/main/branches/STABLE-3.0/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/testdo/inheritance_flat/GroupProperties.java URL: http://svn.apache.org/viewvc/cayenne/main/branches/STABLE-3.0/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/testdo/inheritance_flat/GroupProperties.java?rev=905960&view=auto ============================================================================== --- cayenne/main/branches/STABLE-3.0/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/testdo/inheritance_flat/GroupProperties.java (added) +++ cayenne/main/branches/STABLE-3.0/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/testdo/inheritance_flat/GroupProperties.java Wed Feb 3 09:53:40 2010 @@ -0,0 +1,7 @@ +package org.apache.cayenne.testdo.inheritance_flat; + +import org.apache.cayenne.testdo.inheritance_flat.auto._GroupProperties; + +public class GroupProperties extends _GroupProperties { + +} Added: cayenne/main/branches/STABLE-3.0/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/testdo/inheritance_flat/InheritanceFlat.java URL: http://svn.apache.org/viewvc/cayenne/main/branches/STABLE-3.0/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/testdo/inheritance_flat/InheritanceFlat.java?rev=905960&view=auto ============================================================================== --- cayenne/main/branches/STABLE-3.0/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/testdo/inheritance_flat/InheritanceFlat.java (added) +++ cayenne/main/branches/STABLE-3.0/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/testdo/inheritance_flat/InheritanceFlat.java Wed Feb 3 09:53:40 2010 @@ -0,0 +1,18 @@ +package org.apache.cayenne.testdo.inheritance_flat; + +import org.apache.cayenne.testdo.inheritance_flat.auto._InheritanceFlat; + +public class InheritanceFlat extends _InheritanceFlat { + + private static InheritanceFlat instance; + + private InheritanceFlat() {} + + public static InheritanceFlat getInstance() { + if(instance == null) { + instance = new InheritanceFlat(); + } + + return instance; + } +} Added: cayenne/main/branches/STABLE-3.0/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/testdo/inheritance_flat/Role.java URL: http://svn.apache.org/viewvc/cayenne/main/branches/STABLE-3.0/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/testdo/inheritance_flat/Role.java?rev=905960&view=auto ============================================================================== --- cayenne/main/branches/STABLE-3.0/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/testdo/inheritance_flat/Role.java (added) +++ cayenne/main/branches/STABLE-3.0/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/testdo/inheritance_flat/Role.java Wed Feb 3 09:53:40 2010 @@ -0,0 +1,17 @@ +package org.apache.cayenne.testdo.inheritance_flat; + +import org.apache.cayenne.testdo.inheritance_flat.auto._Role; + +public class Role extends _Role { + + @Override + protected void onPostPersist() { + //TODO: implement onPostPersist + } + + @Override + protected void onPostUpdate() { + //TODO: implement onPostUpdate + } + +} Added: cayenne/main/branches/STABLE-3.0/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/testdo/inheritance_flat/User.java URL: http://svn.apache.org/viewvc/cayenne/main/branches/STABLE-3.0/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/testdo/inheritance_flat/User.java?rev=905960&view=auto ============================================================================== --- cayenne/main/branches/STABLE-3.0/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/testdo/inheritance_flat/User.java (added) +++ cayenne/main/branches/STABLE-3.0/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/testdo/inheritance_flat/User.java Wed Feb 3 09:53:40 2010 @@ -0,0 +1,7 @@ +package org.apache.cayenne.testdo.inheritance_flat; + +import org.apache.cayenne.testdo.inheritance_flat.auto._User; + +public class User extends _User { + +} Added: cayenne/main/branches/STABLE-3.0/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/testdo/inheritance_flat/UserProperties.java URL: http://svn.apache.org/viewvc/cayenne/main/branches/STABLE-3.0/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/testdo/inheritance_flat/UserProperties.java?rev=905960&view=auto ============================================================================== --- cayenne/main/branches/STABLE-3.0/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/testdo/inheritance_flat/UserProperties.java (added) +++ cayenne/main/branches/STABLE-3.0/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/testdo/inheritance_flat/UserProperties.java Wed Feb 3 09:53:40 2010 @@ -0,0 +1,7 @@ +package org.apache.cayenne.testdo.inheritance_flat; + +import org.apache.cayenne.testdo.inheritance_flat.auto._UserProperties; + +public class UserProperties extends _UserProperties { + +} Added: cayenne/main/branches/STABLE-3.0/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/testdo/inheritance_flat/auto/_Group.java URL: http://svn.apache.org/viewvc/cayenne/main/branches/STABLE-3.0/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/testdo/inheritance_flat/auto/_Group.java?rev=905960&view=auto ============================================================================== --- cayenne/main/branches/STABLE-3.0/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/testdo/inheritance_flat/auto/_Group.java (added) +++ cayenne/main/branches/STABLE-3.0/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/testdo/inheritance_flat/auto/_Group.java Wed Feb 3 09:53:40 2010 @@ -0,0 +1,43 @@ +package org.apache.cayenne.testdo.inheritance_flat.auto; + +import java.util.List; + +import org.apache.cayenne.testdo.inheritance_flat.GroupProperties; +import org.apache.cayenne.testdo.inheritance_flat.Role; +import org.apache.cayenne.testdo.inheritance_flat.User; + +/** + * Class _Group was generated by Cayenne. + * It is probably a good idea to avoid changing this class manually, + * since it may be overwritten next time code is regenerated. + * If you need to make any customizations, please use subclass. + */ +public abstract class _Group extends User { + + public static final String GROUP_MEMBERS_PROPERTY = "groupMembers"; + public static final String GROUP_PROPERTIES_PROPERTY = "groupProperties"; + + public static final String ID_PK_COLUMN = "id"; + + public void addToGroupMembers(Role obj) { + addToManyTarget("groupMembers", obj, true); + } + public void removeFromGroupMembers(Role obj) { + removeToManyTarget("groupMembers", obj, true); + } + @SuppressWarnings("unchecked") + public List getGroupMembers() { + return (List)readProperty("groupMembers"); + } + + + public void setGroupProperties(GroupProperties groupProperties) { + setToOneTarget("groupProperties", groupProperties, true); + } + + public GroupProperties getGroupProperties() { + return (GroupProperties)readProperty("groupProperties"); + } + + +} Added: cayenne/main/branches/STABLE-3.0/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/testdo/inheritance_flat/auto/_GroupProperties.java URL: http://svn.apache.org/viewvc/cayenne/main/branches/STABLE-3.0/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/testdo/inheritance_flat/auto/_GroupProperties.java?rev=905960&view=auto ============================================================================== --- cayenne/main/branches/STABLE-3.0/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/testdo/inheritance_flat/auto/_GroupProperties.java (added) +++ cayenne/main/branches/STABLE-3.0/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/testdo/inheritance_flat/auto/_GroupProperties.java Wed Feb 3 09:53:40 2010 @@ -0,0 +1,43 @@ +package org.apache.cayenne.testdo.inheritance_flat.auto; + +import org.apache.cayenne.CayenneDataObject; +import org.apache.cayenne.testdo.inheritance_flat.Group; + +/** + * Class _GroupProperties was generated by Cayenne. + * It is probably a good idea to avoid changing this class manually, + * since it may be overwritten next time code is regenerated. + * If you need to make any customizations, please use subclass. + */ +public abstract class _GroupProperties extends CayenneDataObject { + + public static final String DESCRIPTION_PROPERTY = "description"; + public static final String ID_PROPERTY = "id"; + public static final String GROUP_PROPERTY = "group"; + + public static final String ID_PK_COLUMN = "id"; + + public void setDescription(String description) { + writeProperty("description", description); + } + public String getDescription() { + return (String)readProperty("description"); + } + + public void setId(Long id) { + writeProperty("id", id); + } + public Long getId() { + return (Long)readProperty("id"); + } + + public void setGroup(Group group) { + setToOneTarget("group", group, true); + } + + public Group getGroup() { + return (Group)readProperty("group"); + } + + +} Added: cayenne/main/branches/STABLE-3.0/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/testdo/inheritance_flat/auto/_InheritanceFlat.java URL: http://svn.apache.org/viewvc/cayenne/main/branches/STABLE-3.0/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/testdo/inheritance_flat/auto/_InheritanceFlat.java?rev=905960&view=auto ============================================================================== --- cayenne/main/branches/STABLE-3.0/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/testdo/inheritance_flat/auto/_InheritanceFlat.java (added) +++ cayenne/main/branches/STABLE-3.0/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/testdo/inheritance_flat/auto/_InheritanceFlat.java Wed Feb 3 09:53:40 2010 @@ -0,0 +1,12 @@ +package org.apache.cayenne.testdo.inheritance_flat.auto; + + + +/** + * This class was generated by Cayenne. + * It is probably a good idea to avoid changing this class manually, + * since it may be overwritten next time code is regenerated. + * If you need to make any customizations, please use subclass. + */ +public class _InheritanceFlat { +} \ No newline at end of file Added: cayenne/main/branches/STABLE-3.0/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/testdo/inheritance_flat/auto/_Role.java URL: http://svn.apache.org/viewvc/cayenne/main/branches/STABLE-3.0/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/testdo/inheritance_flat/auto/_Role.java?rev=905960&view=auto ============================================================================== --- cayenne/main/branches/STABLE-3.0/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/testdo/inheritance_flat/auto/_Role.java (added) +++ cayenne/main/branches/STABLE-3.0/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/testdo/inheritance_flat/auto/_Role.java Wed Feb 3 09:53:40 2010 @@ -0,0 +1,62 @@ +package org.apache.cayenne.testdo.inheritance_flat.auto; + +import java.util.List; + +import org.apache.cayenne.CayenneDataObject; +import org.apache.cayenne.testdo.inheritance_flat.Group; + +/** + * Class _Role was generated by Cayenne. + * It is probably a good idea to avoid changing this class manually, + * since it may be overwritten next time code is regenerated. + * If you need to make any customizations, please use subclass. + */ +public abstract class _Role extends CayenneDataObject { + + public static final String ID_PROPERTY = "id"; + public static final String NAME_PROPERTY = "name"; + public static final String TYPE_PROPERTY = "type"; + public static final String ROLE_GROUPS_PROPERTY = "roleGroups"; + + public static final String ID_PK_COLUMN = "id"; + + public void setId(long id) { + writeProperty("id", id); + } + public long getId() { + Object value = readProperty("id"); + return (value != null) ? (Long) value : 0; + } + + public void setName(String name) { + writeProperty("name", name); + } + public String getName() { + return (String)readProperty("name"); + } + + public void setType(int type) { + writeProperty("type", type); + } + public int getType() { + Object value = readProperty("type"); + return (value != null) ? (Integer) value : 0; + } + + public void addToRoleGroups(Group obj) { + addToManyTarget("roleGroups", obj, true); + } + public void removeFromRoleGroups(Group obj) { + removeToManyTarget("roleGroups", obj, true); + } + @SuppressWarnings("unchecked") + public List getRoleGroups() { + return (List)readProperty("roleGroups"); + } + + + protected abstract void onPostPersist(); + + protected abstract void onPostUpdate(); + +} Added: cayenne/main/branches/STABLE-3.0/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/testdo/inheritance_flat/auto/_User.java URL: http://svn.apache.org/viewvc/cayenne/main/branches/STABLE-3.0/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/testdo/inheritance_flat/auto/_User.java?rev=905960&view=auto ============================================================================== --- cayenne/main/branches/STABLE-3.0/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/testdo/inheritance_flat/auto/_User.java (added) +++ cayenne/main/branches/STABLE-3.0/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/testdo/inheritance_flat/auto/_User.java Wed Feb 3 09:53:40 2010 @@ -0,0 +1,27 @@ +package org.apache.cayenne.testdo.inheritance_flat.auto; + +import org.apache.cayenne.testdo.inheritance_flat.Role; +import org.apache.cayenne.testdo.inheritance_flat.UserProperties; + +/** + * Class _User was generated by Cayenne. + * It is probably a good idea to avoid changing this class manually, + * since it may be overwritten next time code is regenerated. + * If you need to make any customizations, please use subclass. + */ +public abstract class _User extends Role { + + public static final String USER_PROPERTIES_PROPERTY = "userProperties"; + + public static final String ID_PK_COLUMN = "id"; + + public void setUserProperties(UserProperties userProperties) { + setToOneTarget("userProperties", userProperties, true); + } + + public UserProperties getUserProperties() { + return (UserProperties)readProperty("userProperties"); + } + + +} Added: cayenne/main/branches/STABLE-3.0/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/testdo/inheritance_flat/auto/_UserProperties.java URL: http://svn.apache.org/viewvc/cayenne/main/branches/STABLE-3.0/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/testdo/inheritance_flat/auto/_UserProperties.java?rev=905960&view=auto ============================================================================== --- cayenne/main/branches/STABLE-3.0/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/testdo/inheritance_flat/auto/_UserProperties.java (added) +++ cayenne/main/branches/STABLE-3.0/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/testdo/inheritance_flat/auto/_UserProperties.java Wed Feb 3 09:53:40 2010 @@ -0,0 +1,43 @@ +package org.apache.cayenne.testdo.inheritance_flat.auto; + +import org.apache.cayenne.CayenneDataObject; +import org.apache.cayenne.testdo.inheritance_flat.User; + +/** + * Class _UserProperties was generated by Cayenne. + * It is probably a good idea to avoid changing this class manually, + * since it may be overwritten next time code is regenerated. + * If you need to make any customizations, please use subclass. + */ +public abstract class _UserProperties extends CayenneDataObject { + + public static final String ID_PROPERTY = "id"; + public static final String NICKNAME_PROPERTY = "nickname"; + public static final String USER_PROPERTY = "user"; + + public static final String ID_PK_COLUMN = "id"; + + public void setId(Long id) { + writeProperty("id", id); + } + public Long getId() { + return (Long)readProperty("id"); + } + + public void setNickname(String nickname) { + writeProperty("nickname", nickname); + } + public String getNickname() { + return (String)readProperty("nickname"); + } + + public void setUser(User user) { + setToOneTarget("user", user, true); + } + + public User getUser() { + return (User)readProperty("user"); + } + + +} Added: cayenne/main/branches/STABLE-3.0/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/unit/jira/CAY_1379Test.java URL: http://svn.apache.org/viewvc/cayenne/main/branches/STABLE-3.0/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/unit/jira/CAY_1379Test.java?rev=905960&view=auto ============================================================================== --- cayenne/main/branches/STABLE-3.0/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/unit/jira/CAY_1379Test.java (added) +++ cayenne/main/branches/STABLE-3.0/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/unit/jira/CAY_1379Test.java Wed Feb 3 09:53:40 2010 @@ -0,0 +1,57 @@ +package org.apache.cayenne.unit.jira; + +import org.apache.cayenne.access.DataContext; +import org.apache.cayenne.exp.Expression; +import org.apache.cayenne.exp.ExpressionFactory; +import org.apache.cayenne.query.SelectQuery; +import org.apache.cayenne.testdo.inheritance_flat.Group; +import org.apache.cayenne.testdo.inheritance_flat.Role; +import org.apache.cayenne.testdo.inheritance_flat.User; +import org.apache.cayenne.unit.AccessStack; +import org.apache.cayenne.unit.CayenneCase; +import org.apache.cayenne.unit.CayenneResources; + +public class CAY_1379Test extends CayenneCase { + + @Override + protected void setUp() throws Exception { + super.setUp(); + deleteTestData(); + } + + @Override + protected AccessStack buildAccessStack() { + return CayenneResources.getResources().getAccessStack("InheritanceFlatStack"); + } + + public void testGroupActions() throws Exception { + + DataContext context = createDataContext(); + + User user = context.newObject(User.class); + user.setName("test_user"); + + Group group1 = context.newObject(Group.class); + group1.setName("test_group1"); + + Group group2 = context.newObject(Group.class); + group2.setName("test_group2"); + + group1.addToGroupMembers(user); + group2.addToGroupMembers(group1); + + group2.getObjectContext().commitChanges(); + + // Per CAY-1379 removing user and then refetching resulted in a FFE downstream + group1.removeFromGroupMembers(user); + Expression exp = ExpressionFactory.matchExp(Role.ROLE_GROUPS_PROPERTY, group2); + SelectQuery query = new SelectQuery(Group.class, exp); + context.performQuery(query); + context.commitChanges(); + + context.deleteObject(group1); + context.deleteObject(group2); + context.deleteObject(user); + context.commitChanges(); + } +} Modified: cayenne/main/branches/STABLE-3.0/framework/cayenne-jdk1.5-unpublished/src/test/resources/cayenne.xml URL: http://svn.apache.org/viewvc/cayenne/main/branches/STABLE-3.0/framework/cayenne-jdk1.5-unpublished/src/test/resources/cayenne.xml?rev=905960&r1=905959&r2=905960&view=diff ============================================================================== --- cayenne/main/branches/STABLE-3.0/framework/cayenne-jdk1.5-unpublished/src/test/resources/cayenne.xml (original) +++ cayenne/main/branches/STABLE-3.0/framework/cayenne-jdk1.5-unpublished/src/test/resources/cayenne.xml Wed Feb 3 09:53:40 2010 @@ -4,6 +4,7 @@ + Added: cayenne/main/branches/STABLE-3.0/framework/cayenne-jdk1.5-unpublished/src/test/resources/inheritance-flat.map.xml URL: http://svn.apache.org/viewvc/cayenne/main/branches/STABLE-3.0/framework/cayenne-jdk1.5-unpublished/src/test/resources/inheritance-flat.map.xml?rev=905960&view=auto ============================================================================== --- cayenne/main/branches/STABLE-3.0/framework/cayenne-jdk1.5-unpublished/src/test/resources/inheritance-flat.map.xml (added) +++ cayenne/main/branches/STABLE-3.0/framework/cayenne-jdk1.5-unpublished/src/test/resources/inheritance-flat.map.xml Wed Feb 3 09:53:40 2010 @@ -0,0 +1,80 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Modified: cayenne/main/branches/STABLE-3.0/framework/cayenne-jdk1.5-unpublished/src/test/resources/spring-test-resources.xml URL: http://svn.apache.org/viewvc/cayenne/main/branches/STABLE-3.0/framework/cayenne-jdk1.5-unpublished/src/test/resources/spring-test-resources.xml?rev=905960&r1=905959&r2=905960&view=diff ============================================================================== --- cayenne/main/branches/STABLE-3.0/framework/cayenne-jdk1.5-unpublished/src/test/resources/spring-test-resources.xml (original) +++ cayenne/main/branches/STABLE-3.0/framework/cayenne-jdk1.5-unpublished/src/test/resources/spring-test-resources.xml Wed Feb 3 09:53:40 2010 @@ -109,6 +109,9 @@ quotemap.map.xml + + inheritance-flat.map.xml + @@ -183,6 +186,11 @@ + + + + + @@ -201,6 +209,7 @@ +