Package org.apache.cayenne.dba

Examples of org.apache.cayenne.dba.JdbcAdapter


    public void testHasGeneratedKeys1() throws Exception {
        EntityResolver resolver = runtime.getChannel().getEntityResolver();

        // test with adapter that supports keys
        JdbcAdapter adapter = buildAdapter(true);

        InsertBatchQuery batch1 = new InsertBatchQuery(resolver.lookupObjEntity(
                GeneratedColumnTestEntity.class).getDbEntity(), 5);
        assertTrue(new BatchAction(batch1, adapter, resolver).hasGeneratedKeys());
View Full Code Here


    public void testHasGeneratedKeys2() throws Exception {
        EntityResolver resolver = runtime.getChannel().getEntityResolver();

        // test with adapter that does not support keys...
        JdbcAdapter adapter = buildAdapter(false);

        InsertBatchQuery batch1 = new InsertBatchQuery(resolver.lookupObjEntity(
                GeneratedColumnTestEntity.class).getDbEntity(), 5);
        assertFalse(new BatchAction(batch1, adapter, resolver).hasGeneratedKeys());
View Full Code Here

                Artist.class).getDbEntity(), 5);
        assertFalse(new BatchAction(batch2, adapter, resolver).hasGeneratedKeys());
    }

    JdbcAdapter buildAdapter(boolean supportGeneratedKeys) {
        JdbcAdapter adapter = objectFactory.newInstance(
                JdbcAdapter.class,
                JdbcAdapter.class.getName());
        adapter.setSupportsGeneratedKeys(supportGeneratedKeys);
        return adapter;
    }
View Full Code Here

   
    @Inject
    private AdhocObjectFactory objectFactory;

    private DeleteBatchQueryBuilder createBuilder() {
        JdbcAdapter adapter = objectFactory.newInstance(
                JdbcAdapter.class,
                JdbcAdapter.class.getName());
        return createBuilder(adapter);
    }
View Full Code Here

            DeleteBatchQuery deleteQuery = new DeleteBatchQuery(
                    entity,
                    idAttributes,
                    null,
                    1);
            JdbcAdapter adapter = (JdbcAdapter) this.adapter;
            DeleteBatchQueryBuilder builder = createBuilder(adapter);
            String generatedSql = builder.createSqlString(deleteQuery);

            String charStart = adapter.getIdentifiersStartQuote();
            String charEnd = adapter.getIdentifiersEndQuote();

            assertNotNull(generatedSql);
            assertEquals("UPDATE "
                    + charStart
                    + entity.getName()
View Full Code Here

    public void testUpdate() throws Exception {

        final DbEntity entity = context.getEntityResolver().lookupObjEntity(
                SoftTest.class).getDbEntity();

        JdbcAdapter adapter = (JdbcAdapter) this.adapter;
        BatchQueryBuilderFactory oldFactory = adapter.getBatchQueryBuilderFactory();
        try {
            adapter.setBatchQueryBuilderFactory(new SoftDeleteQueryBuilderFactory());

            final SoftTest test = context.newObject(SoftTest.class);
            test.setName("SoftDeleteBatchQueryBuilderTest");
            context.commitChanges();

            final SelectQuery query = new SelectQuery(SoftTest.class);

            new ThreadedTestHelper() {

                @Override
                protected void assertResult() throws Exception {
                    query
                            .setQualifier(ExpressionFactory.matchExp("name", test
                                    .getName()));
                    assertEquals(1, context.performQuery(query).size());

                    query.andQualifier(ExpressionFactory.matchDbExp("DELETED", true));
                    assertEquals(0, context.performQuery(query).size());
                }
            }.assertWithTimeout(200);

            context.deleteObjects(test);
            assertEquals(test.getPersistenceState(), PersistenceState.DELETED);
            context.commitChanges();

            new ThreadedTestHelper() {

                @Override
                protected void assertResult() throws Exception {
                    query
                            .setQualifier(ExpressionFactory.matchExp("name", test
                                    .getName()));
                    assertEquals(0, context.performQuery(query).size());

                    SQLTemplate template = new SQLTemplate(
                            entity,
                            "SELECT * FROM SOFT_TEST");
                    template.setFetchingDataRows(true);
                    assertEquals(1, context.performQuery(template).size());
                }
            }.assertWithTimeout(200);
        }
        finally {
            context.performQuery(new SQLTemplate(entity, "DELETE FROM SOFT_TEST"));
            adapter.setBatchQueryBuilderFactory(oldFactory);
        }
    }
View Full Code Here

        DataDomain domain = context.getParentDataDomain();

        // setup mockup PK generator that will blow on PK request
        // to emulate an exception
        JdbcAdapter jdbcAdapter = objectFactory.newInstance(
                JdbcAdapter.class,
                JdbcAdapter.class.getName());
        PkGenerator newGenerator = new JdbcPkGenerator(jdbcAdapter) {

            @Override
            public Object generatePk(DataNode node, DbAttribute pk) throws Exception {
                throw new CayenneRuntimeException("Intentional");
            }
        };

        PkGenerator oldGenerator = domain
                .getDataNodes()
                .iterator()
                .next()
                .getAdapter()
                .getPkGenerator();
        JdbcAdapter adapter = (JdbcAdapter) domain
                .getDataNodes()
                .iterator()
                .next()
                .getAdapter();

        adapter.setPkGenerator(newGenerator);
        try {
            Artist newArtist = context.newObject(Artist.class);
            newArtist.setArtistName("aaa");
            context.commitChanges();
            fail("Exception expected but not thrown due to missing PK generation routine.");
        }
        catch (CayenneRuntimeException ex) {
            // exception expected
        }
        finally {
            adapter.setPkGenerator(oldGenerator);
        }
    }
View Full Code Here

    public void testAdapter() throws Exception {
        DataNode node = new DataNode();

        assertNull(node.getAdapter());

        JdbcAdapter a1 = objectFactory.newInstance(
                JdbcAdapter.class,
                JdbcAdapter.class.getName());
        node.setAdapter(a1);

        assertSame(a1, node.getAdapter());

        JdbcAdapter a2 = objectFactory.newInstance(
                JdbcAdapter.class,
                JdbcAdapter.class.getName());
        node.setAdapter(a2);

        assertSame(a2, node.getAdapter());
View Full Code Here

                    entity,
                    idAttributes,
                    updatedAttributes,
                    null,
                    1);
            JdbcAdapter adapter = (JdbcAdapter) this.adapter;

            UpdateBatchQueryBuilder builder = new UpdateBatchQueryBuilder(adapter);
            String generatedSql = builder.createSqlString(updateQuery);

            String charStart = adapter.getIdentifiersStartQuote();
            String charEnd = adapter.getIdentifiersEndQuote();

            assertNotNull(generatedSql);
            assertEquals("UPDATE "
                    + charStart
                    + entity.getName()
View Full Code Here

                    entity,
                    idAttributes,
                    updatedAttributes,
                    nullAttributes,
                    1);
            JdbcAdapter adapter = (JdbcAdapter) this.adapter;

            UpdateBatchQueryBuilder builder = new UpdateBatchQueryBuilder(adapter);
            String generatedSql = builder.createSqlString(updateQuery);
            assertNotNull(generatedSql);

            String charStart = adapter.getIdentifiersStartQuote();
            String charEnd = adapter.getIdentifiersEndQuote();
            assertEquals("UPDATE "
                    + charStart
                    + entity.getName()
                    + charEnd
                    + " SET "
View Full Code Here

TOP

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

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.