Package org.jboss.ejb.plugins.cmp.jdbc2.schema

Examples of org.jboss.ejb.plugins.cmp.jdbc2.schema.Schema


      return fields;
   }

   public boolean isStoreRequired(EntityEnterpriseContext instance)
   {
      PersistentContext pctx = (PersistentContext) instance.getPersistenceContext();
      return pctx.isDirty();
   }
View Full Code Here


      return pctx.isDirty();
   }

   public boolean isModified(EntityEnterpriseContext instance)
   {
      PersistentContext pctx = (PersistentContext) instance.getPersistenceContext();
      boolean modified = pctx.isDirty();

      if(!modified && cmrFields != null)
      {
         for(int i = 0; i < cmrFields.length; ++i)
         {
            final JDBCCMRFieldBridge2.FieldState cmrState = pctx.getCMRState(i);
            if(cmrState != null && cmrState.isModified())
            {
               modified = true;
               break;
            }
View Full Code Here

   }

   public Object execute(Method m, Object[] args, EntityEnterpriseContext ctx) throws CreateException
   {
      Object pk;
      PersistentContext pctx = (PersistentContext) ctx.getPersistenceContext();
      if(ctx.getId() == null)
      {
         Connection con = null;
         PreparedStatement ps = null;
         ResultSet rs = null;
         try
         {
            if(log.isDebugEnabled())
            {
               log.debug("executing sql: " + pkSql);
            }

            con = entityBridge.getDataSource().getConnection();
            ps = con.prepareStatement(pkSql);
            rs = ps.executeQuery();

            if(!rs.next())
            {
               throw new CreateException("pk-sql " + pkSql + " returned no results!");
            }

            pk = pkField.loadArgumentResults(rs, 1);
            pctx.setFieldValue(pkField.getRowIndex(), pk);
            pk = entityBridge.extractPrimaryKeyFromInstance(ctx);
         }
         catch(SQLException e)
         {
            log.error("Failed to execute pk sql. error code: " + e.getErrorCode() + ", sql state: " + e.getSQLState(), e);
            throw new CreateException("Failed to execute pk sql: " + e.getMessage() +
               ", error code: " + e.getErrorCode() + ", sql state: " + e.getSQLState());
         }
         finally
         {
            JDBCUtil.safeClose(rs);
            JDBCUtil.safeClose(ps);
            JDBCUtil.safeClose(con);
         }

         if(pk == null)
         {
            log.error("Primary key for created instance is null.");
            throw new CreateException("Primary key for created instance is null.");
         }

         pctx.setPk(pk);
      }
      else
      {
         // insert-after-ejb-post-create
         try
         {
            pctx.flush();
         }
         catch(SQLException e)
         {
            if("23000".equals(e.getSQLState()))
            {
View Full Code Here

      }
   }

   public void setValueInternal(EntityEnterpriseContext ctx, Object value, boolean makeDirty)
   {
      PersistentContext pctx = (PersistentContext) ctx.getPersistenceContext();

      // todo this is weird
      if(cmpFieldIAmMappedTo != null && cmpFieldIAmMappedTo.isPrimaryKeyMember)
      {
         Object curValue = pctx.getFieldValue(rowIndex);
         if(value != null && !value.equals(curValue))
         {
            throw new IllegalStateException(
               "Attempt to modify a primary key field through a foreign key field mapped to it: "
               +
               entity.getEntityName()
               + "."
               + cmpFieldIAmMappedTo.getFieldName()
               +
               " -> "
               + entity.getQualifiedTableName()
               + "."
               + cmpFieldIAmMappedTo.getColumnName() +
               ", current value=" + curValue + ", new value=" + value
            );
         }

         makeDirty = false;
      }
      else
      {
         pctx.setFieldValue(rowIndex, value);
      }

      if(makeDirty)
      {
         pctx.setDirty();
      }
   }
View Full Code Here

      return fieldName;
   }

   public Object getValue(EntityEnterpriseContext ctx)
   {
      PersistentContext pctx = (PersistentContext) ctx.getPersistenceContext();
      return pctx.getFieldValue(rowIndex);
   }
View Full Code Here

      }
   }

   private FieldState getFieldState(EntityEnterpriseContext ctx)
   {
      PersistentContext pctx = (PersistentContext)ctx.getPersistenceContext();
      FieldState state = pctx.getCMRState(cmrIndex);
      if(state == null)
      {
         if(isSingleValued())
         {
            state = new SingleValuedFieldState();
         }
         else
         {
            state = new CollectionValuedFieldState();
         }
         pctx.setCMRState(cmrIndex, state);
      }
      return state;
   }
View Full Code Here

         return value == null ? NULL_VALUE : value;
      }

      public void cacheValue(EntityEnterpriseContext ctx)
      {
         PersistentContext pctx = (PersistentContext)ctx.getPersistenceContext();
         pctx.cacheRelations(cmrIndex, this);
      }
View Full Code Here

      private Object getLoadedValue(EntityEnterpriseContext ctx)
      {
         if(!loaded)
         {
            PersistentContext pctx = (PersistentContext)ctx.getPersistenceContext();
            pctx.loadCachedRelations(cmrIndex, this);
            if(!loaded)
            {
               loader.load(ctx, this);
               loaded = true;
               cacheValue(ctx);
View Full Code Here

         return value;
      }

      public void cacheValue(EntityEnterpriseContext ctx)
      {
         PersistentContext pctx = (PersistentContext)ctx.getPersistenceContext();
         pctx.cacheRelations(cmrIndex, this);
      }
View Full Code Here

         return value;
      }

      private void loadOnlyFromCache(EntityEnterpriseContext ctx)
      {
         PersistentContext pctx = (PersistentContext)ctx.getPersistenceContext();
         if(pctx == null)
         {
            throw new EJBException("Persistence context is not available! Make sure the CMR collection is accessed in the transaction it was obtained.");
         }
         pctx.loadCachedRelations(cmrIndex, this);
      }
View Full Code Here

TOP

Related Classes of org.jboss.ejb.plugins.cmp.jdbc2.schema.Schema

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.