Package org.apache.cayenne.dba

Examples of org.apache.cayenne.dba.DbAdapter


            // load driver taking custom CLASSPATH into account...
            DriverDataSource dataSource = new DriverDataSource((Driver) Class.forName(driver).newInstance(), url,
                    userName, password);

            DbAdapter adapter = getAdapter(injector, dataSource);

            DbGenerator generator = new DbGenerator(adapter, dataMap, Collections.<DbEntity> emptyList(), null,
                    NoopJdbcEventLogger.getInstance());
            generator.setShouldCreateFKConstraints(createFK);
            generator.setShouldCreatePKSupport(createPK);
View Full Code Here


        projectSaver.save(project);
    }

    DataMap load(DbImportParameters parameters, DataNodeDescriptor nodeDescriptor) throws Exception {
        DataSource dataSource = dataSourceFactory.getDataSource(nodeDescriptor);
        DbAdapter adapter = adapterFactory.createAdapter(nodeDescriptor, dataSource);

        DataMap dataMap = createDataMap(parameters);

        DbImportDbLoaderDelegate loaderDelegate = new DbImportDbLoaderDelegate();
View Full Code Here

    protected void buildStatements() {
        dropTables = new HashMap<String, Collection<String>>();
        createTables = new HashMap<String, String>();
        createConstraints = new HashMap<String, List<String>>();

        DbAdapter adapter = getAdapter();
        for (final DbEntity dbe : this.dbEntitiesInInsertOrder) {

            String name = dbe.getName();

            // build "DROP TABLE"
            dropTables.put(name, adapter.dropTableStatements(dbe));

            // build "CREATE TABLE"
            createTables.put(name, adapter.createTable(dbe));

            // build constraints
            createConstraints.put(name, createConstraintsQueries(dbe));
        }

        PkGenerator pkGenerator = adapter.getPkGenerator();
        dropPK = pkGenerator.dropAutoPkStatements(dbEntitiesRequiringAutoPK);
        createPK = pkGenerator.createAutoPkStatements(dbEntitiesRequiringAutoPK);
    }
View Full Code Here

        logger.info(String.format(
                "generator options - [dropTables: %s, dropPK: %s, createTables: %s, createPK: %s, createFK: %s]",
                dropTables, dropPK, createTables, createPK, createFK));

        try {
            final DbAdapter adapterInst = (adapter == null) ? (DbAdapter) objectFactory.newInstance(DbAdapter.class,
                    JdbcAdapter.class.getName()) : (DbAdapter) objectFactory.newInstance(DbAdapter.class, adapter);

            // Load the data map and run the db generator.
            DataMap dataMap = loadDataMap();
            DbGenerator generator = new DbGenerator(adapterInst, dataMap, NoopJdbcEventLogger.getInstance());
View Full Code Here

    /**
     * Creates new internal DbGenerator instance.
     */
    protected void prepareGenerator() {
        try {
            DbAdapter adapter = connectionInfo.makeAdapter(getApplication()
                    .getClassLoadingService());
            this.generator = new DbGenerator(
                    adapter,
                    dataMap,
                    tables.getExcludedTables(),
View Full Code Here

            String dbAttrName = dbAttr.getName();
            if (snapshot.containsKey(dbAttrName)) {
                continue;
            }

            DbAdapter adapter = node.getAdapter();

            // skip db-generated... looks like we don't care about the actual PK
            // value
            // here, so no need to retrieve db-generated pk back to Java.
            if (adapter.supportsGeneratedKeys() && dbAttr.isGenerated()) {
                continue;
            }

            if (autoPkDone) {
                throw new CayenneRuntimeException(
                        "Primary Key autogeneration only works for a single attribute.");
            }

            // finally, use database generation mechanism
            try {
                Object pkValue = adapter.getPkGenerator().generatePk(node,
                        dbAttr);
                snapshot.put(dbAttrName, pkValue);
                autoPkDone = true;
            } catch (Exception ex) {
                throw new CayenneRuntimeException("Error generating PK: "
View Full Code Here

        // iterate in reverse order to allow custom factories to take precedence
        // over the
        // default ones configured in constructor
        for (int i = detectors.size() - 1; i >= 0; i--) {
            DbAdapterDetector detector = detectors.get(i);
            DbAdapter adapter = detector.createAdapter(metaData);

            if (adapter != null) {
                jdbcEventLogger.log("Detected and installed adapter: " + adapter.getClass().getName());

                // TODO: should detector do this??
                injector.injectMembers(adapter);

                return adapter;
View Full Code Here

    @Inject
    private AdhocObjectFactory objectFactory;

    public void testConstructor() throws Exception {
        DbAdapter adapter = objectFactory.newInstance(DbAdapter.class, JdbcAdapter.class.getName());

        DeleteBatchQueryBuilder builder = new DeleteBatchQueryBuilder(adapter);

        assertSame(adapter, builder.getAdapter());
    }
View Full Code Here

        List<DbAttribute> idAttributes = Collections
                .singletonList((DbAttribute) entity.getAttribute("LOCKING_TEST_ID"));

        DeleteBatchQuery deleteQuery = new DeleteBatchQuery(entity, idAttributes, null, 1);

        DbAdapter adapter = objectFactory.newInstance(DbAdapter.class, JdbcAdapter.class.getName());
        DeleteBatchQueryBuilder builder = new DeleteBatchQueryBuilder(adapter);
        String generatedSql = builder.createSqlString(deleteQuery);
        assertNotNull(generatedSql);
        assertEquals("DELETE FROM " + entity.getName() + " WHERE LOCKING_TEST_ID = ?", generatedSql);
    }
View Full Code Here

        Collection<String> nullAttributes = Collections.singleton("NAME");

        DeleteBatchQuery deleteQuery = new DeleteBatchQuery(entity, idAttributes, nullAttributes, 1);

        DbAdapter adapter = objectFactory.newInstance(DbAdapter.class, JdbcAdapter.class.getName());
        DeleteBatchQueryBuilder builder = new DeleteBatchQueryBuilder(adapter);
        String generatedSql = builder.createSqlString(deleteQuery);
        assertNotNull(generatedSql);
        assertEquals("DELETE FROM " + entity.getName() + " WHERE LOCKING_TEST_ID = ? AND NAME IS NULL", generatedSql);
    }
View Full Code Here

TOP

Related Classes of org.apache.cayenne.dba.DbAdapter

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.