Added: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/relations/RelationToHandlerMapInstance.java URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/relations/RelationToHandlerMapInstance.java?rev=592917&view=auto ============================================================================== --- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/relations/RelationToHandlerMapInstance.java (added) +++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/relations/RelationToHandlerMapInstance.java Wed Nov 7 13:46:09 2007 @@ -0,0 +1,43 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.openjpa.persistence.relations; + +import java.util.HashMap; +import java.util.Map; +import javax.persistence.CascadeType; +import javax.persistence.Entity; +import javax.persistence.Id; + +import org.apache.openjpa.persistence.PersistentMap; +import org.apache.openjpa.persistence.simple.AllFieldTypes; + [EMAIL PROTECTED] +public class RelationToHandlerMapInstance { + @Id + private int id; + + @PersistentMap(keyCascade = CascadeType.PERSIST) + + private Map<AllFieldTypes,String> aftMap = + new HashMap<AllFieldTypes,String>(); + + public Map<AllFieldTypes,String> getMap() { + return aftMap; + } +} \ No newline at end of file
Added: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/relations/RelationToRelationMapInstance.java URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/relations/RelationToRelationMapInstance.java?rev=592917&view=auto ============================================================================== --- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/relations/RelationToRelationMapInstance.java (added) +++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/relations/RelationToRelationMapInstance.java Wed Nov 7 13:46:09 2007 @@ -0,0 +1,43 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.openjpa.persistence.relations; + +import java.util.HashMap; +import java.util.Map; +import javax.persistence.CascadeType; +import javax.persistence.Entity; +import javax.persistence.Id; + +import org.apache.openjpa.persistence.PersistentMap; +import org.apache.openjpa.persistence.simple.AllFieldTypes; + [EMAIL PROTECTED] +public class RelationToRelationMapInstance { + @Id + private int id; + + @PersistentMap(keyCascade = CascadeType.PERSIST, + elementCascade = CascadeType.PERSIST) + private Map<AllFieldTypes,AllFieldTypes> map = + new HashMap<AllFieldTypes,AllFieldTypes>(); + + public Map<AllFieldTypes,AllFieldTypes> getMap() { + return map; + } +} Added: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/relations/SimpleEmbeddable.java URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/relations/SimpleEmbeddable.java?rev=592917&view=auto ============================================================================== --- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/relations/SimpleEmbeddable.java (added) +++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/relations/SimpleEmbeddable.java Wed Nov 7 13:46:09 2007 @@ -0,0 +1,34 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.openjpa.persistence.relations; + +import javax.persistence.Embeddable; + [EMAIL PROTECTED] +public class SimpleEmbeddable { + private String embeddedString; + + protected SimpleEmbeddable() { + // for JPA + } + + public SimpleEmbeddable(String s) { + embeddedString = s; + } +} Added: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/relations/TestHandlerCollections.java URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/relations/TestHandlerCollections.java?rev=592917&view=auto ============================================================================== --- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/relations/TestHandlerCollections.java (added) +++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/relations/TestHandlerCollections.java Wed Nov 7 13:46:09 2007 @@ -0,0 +1,47 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.openjpa.persistence.relations; + +import org.apache.openjpa.jdbc.meta.ClassMapping; +import org.apache.openjpa.jdbc.meta.strats.HandlerCollectionTableFieldStrategy; +import org.apache.openjpa.persistence.JPAFacadeHelper; +import org.apache.openjpa.persistence.test.SingleEMTestCase; + +public class TestHandlerCollections + extends SingleEMTestCase { + + public void setUp() { + setUp(HandlerCollectionInstance.class, + CLEAR_TABLES); + } + + public void testHandlerCollections() { + ClassMapping cm = (ClassMapping) JPAFacadeHelper.getMetaData(em, + HandlerCollectionInstance.class); + assertEquals(HandlerCollectionTableFieldStrategy.class, + cm.getFieldMapping("collection").getStrategy().getClass()); + + HandlerCollectionInstance o = new HandlerCollectionInstance(); + o.getCollection().add("foo"); + em.getTransaction().begin(); + em.persist(o); + em.getTransaction().commit(); + em.close(); + } +} \ No newline at end of file Added: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/relations/TestHandlerToHandlerMaps.java URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/relations/TestHandlerToHandlerMaps.java?rev=592917&view=auto ============================================================================== --- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/relations/TestHandlerToHandlerMaps.java (added) +++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/relations/TestHandlerToHandlerMaps.java Wed Nov 7 13:46:09 2007 @@ -0,0 +1,51 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.openjpa.persistence.relations; + +import org.apache.openjpa.jdbc.meta.ClassMapping; +import org.apache.openjpa.jdbc.meta.FieldMapping; +import org.apache.openjpa.jdbc.meta.strats.HandlerHandlerMapTableFieldStrategy; +import org.apache.openjpa.persistence.JPAFacadeHelper; +import org.apache.openjpa.persistence.simple.AllFieldTypes; +import org.apache.openjpa.persistence.test.SingleEMTestCase; + +public class TestHandlerToHandlerMaps + extends SingleEMTestCase { + + public void setUp() { + setUp(HandlerToHandlerMapInstance.class, + CLEAR_TABLES); + } + + public void testHandlerToHandlerMaps() { + ClassMapping cm = (ClassMapping) JPAFacadeHelper.getMetaData(em, + HandlerToHandlerMapInstance.class); + FieldMapping fm = cm.getFieldMapping("map"); + assertEquals(HandlerHandlerMapTableFieldStrategy.class, + fm.getStrategy().getClass()); + assertEquals("NONSTD_MAPPING_MAP", fm.getTable().getName()); + + HandlerToHandlerMapInstance o = new HandlerToHandlerMapInstance(); + o.getMap().put("foo", "bar"); + em.getTransaction().begin(); + em.persist(o); + em.getTransaction().commit(); + em.close(); + } +} \ No newline at end of file Added: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/relations/TestHandlerToRelationMaps.java URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/relations/TestHandlerToRelationMaps.java?rev=592917&view=auto ============================================================================== --- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/relations/TestHandlerToRelationMaps.java (added) +++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/relations/TestHandlerToRelationMaps.java Wed Nov 7 13:46:09 2007 @@ -0,0 +1,48 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.openjpa.persistence.relations; + +import org.apache.openjpa.jdbc.meta.ClassMapping; +import org.apache.openjpa.jdbc.meta.strats.HandlerRelationMapTableFieldStrategy; +import org.apache.openjpa.persistence.JPAFacadeHelper; +import org.apache.openjpa.persistence.simple.AllFieldTypes; +import org.apache.openjpa.persistence.test.SingleEMTestCase; + +public class TestHandlerToRelationMaps + extends SingleEMTestCase { + + public void setUp() { + setUp(HandlerToRelationMapInstance.class, AllFieldTypes.class, + CLEAR_TABLES, "openjpa.Log", "SQL=TRACE"); + } + + public void testHandlerToRelationMaps() { + ClassMapping cm = (ClassMapping) JPAFacadeHelper.getMetaData(em, + HandlerToRelationMapInstance.class); + assertEquals(HandlerRelationMapTableFieldStrategy.class, + cm.getFieldMapping("map").getStrategy().getClass()); + + HandlerToRelationMapInstance o = new HandlerToRelationMapInstance(); + o.getMap().put("foo", new AllFieldTypes()); + em.getTransaction().begin(); + em.persist(o); + em.getTransaction().commit(); + em.close(); + } +} \ No newline at end of file Added: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/relations/TestRelationToHandlerMaps.java URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/relations/TestRelationToHandlerMaps.java?rev=592917&view=auto ============================================================================== --- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/relations/TestRelationToHandlerMaps.java (added) +++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/relations/TestRelationToHandlerMaps.java Wed Nov 7 13:46:09 2007 @@ -0,0 +1,51 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.openjpa.persistence.relations; + +import java.net.MalformedURLException; + +import org.apache.openjpa.jdbc.meta.ClassMapping; +import org.apache.openjpa.jdbc.meta.strats.RelationHandlerMapTableFieldStrategy; +import org.apache.openjpa.persistence.JPAFacadeHelper; +import org.apache.openjpa.persistence.simple.AllFieldTypes; +import org.apache.openjpa.persistence.test.SingleEMTestCase; + +public class TestRelationToHandlerMaps + extends SingleEMTestCase { + + public void setUp() { + setUp(RelationToHandlerMapInstance.class, AllFieldTypes.class, + CLEAR_TABLES); + } + + public void testRelationToHandlerMaps() throws MalformedURLException { + ClassMapping cm = (ClassMapping) JPAFacadeHelper.getMetaData(em, + RelationToHandlerMapInstance.class); + assertEquals(RelationHandlerMapTableFieldStrategy.class, + cm.getFieldMapping("aftMap").getStrategy().getClass()); + + RelationToHandlerMapInstance o = new RelationToHandlerMapInstance(); + AllFieldTypes key = new AllFieldTypes(); + o.getMap().put(key, "foo"); + em.getTransaction().begin(); + em.persist(o); + em.getTransaction().commit(); + em.close(); + } +} \ No newline at end of file Added: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/relations/TestRelationToRelationMaps.java URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/relations/TestRelationToRelationMaps.java?rev=592917&view=auto ============================================================================== --- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/relations/TestRelationToRelationMaps.java (added) +++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/relations/TestRelationToRelationMaps.java Wed Nov 7 13:46:09 2007 @@ -0,0 +1,50 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.openjpa.persistence.relations; + +import org.apache.openjpa.jdbc.meta.ClassMapping; +import org.apache.openjpa.jdbc.meta.strats.RelationRelationMapTableFieldStrategy; +import org.apache.openjpa.persistence.JPAFacadeHelper; +import org.apache.openjpa.persistence.simple.AllFieldTypes; +import org.apache.openjpa.persistence.test.SingleEMTestCase; + +public class TestRelationToRelationMaps + extends SingleEMTestCase { + + public void setUp() { + setUp(RelationToRelationMapInstance.class, AllFieldTypes.class, + CLEAR_TABLES); + } + + public void testRelationToRelationMaps() { + ClassMapping cm = (ClassMapping) JPAFacadeHelper.getMetaData(em, + RelationToRelationMapInstance.class); + assertEquals(RelationRelationMapTableFieldStrategy.class, + cm.getFieldMapping("map").getStrategy().getClass()); + + RelationToRelationMapInstance o = new RelationToRelationMapInstance(); + AllFieldTypes key = new AllFieldTypes(); + AllFieldTypes val = new AllFieldTypes(); + o.getMap().put(key, val); + em.getTransaction().begin(); + em.persist(o); + em.getTransaction().commit(); + em.close(); + } +} \ No newline at end of file
