yourDataDomain.addMap(DataMap map) I'd also suggest creating the DataMap programmically unless you have some reason to want to do it from a static xml file.
You used to be able to use the following code to fetch the data domain. DataDomain yourDataDomain = Configuration.getSharedConfiguration().getDomain(); On Tue, Nov 2, 2010 at 9:59 AM, caden whitaker <[email protected]> wrote: > Hey all, > > I'm still on my quest to get this stuff loaded dynamically. Here's what I'm > doing now, first I gutted the map xml file so that it looks like this: > > TestProjectSourceMap.map.xml > <?xml version="1.0" encoding="utf-8"?> > <data-map xmlns="http://cayenne.apache.org/schema/3.0/modelMap" > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > xsi:schemaLocation="http://cayenne.apache.org/schema/3.0/modelMap > http://cayenne.apache.org/schema/3.0/modelMap.xsd" > project-version="3.0.0.1"> > <property name="defaultPackage" value="org.example.cayenne.persistent"/> > > </data-map> > > > Built a new Map xml file that had all of the real class associations and put > it someplace else, that file looks like this > > TestProjectNewMap.map.xml > <?xml version="1.0" encoding="utf-8"?> > <data-map xmlns="http://cayenne.apache.org/schema/3.0/modelMap" > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > xsi:schemaLocation="http://cayenne.apache.org/schema/3.0/modelMap > http://cayenne.apache.org/schema/3.0/modelMap.xsd" > project-version="3.0.0.1"> > <property name="defaultPackage" value="org.example.cayenne.persistent"/> > <db-entity name="ARTIST"> > <db-attribute name="ArtistID" type="BIGINT" isPrimaryKey="true" > isMandatory="true"/> > <db-attribute name="Name" type="VARCHAR" length="255"/> > </db-entity> > .... > <obj-relationship name="artist" source="Painting" target="Artist" > deleteRule="Nullify" db-relationship-path="artist"/> > </data-map> > > > All I want to do is load in this OTHER xml file, right now I'm getting > "Class is not mapped with Cayenne: > main.java.org.example.cayenne.persistent.Artist" which is because it has not > loaded my other xml file. Here is what I'm doing: > > > ObjectContext context = DataContext.createDataContext(); > > MapLoader ml = new MapLoader(); > > DataMap dataMap = ml.loadDataMap(new InputSource(new > FileInputStream("C:\\eclipse_cayenne\\tutorial\\src\\main\\resources\\Map.map.xml"))); > > //This will bomb because I havent DONE anything with the datamap > > Artist picasso = context.newObject(Artist.class); > > So what do I do with that DataMap to get it loaded into the context? I've > been looking but I Don't see the method call I need to make to push that > DataMap anywhere. Note the other files (cayenne.xml, > TestProjectNode.driver.xml) remain unchanged. > > Any help would be greatly appreciated. >
