Announcement Announcement Module
Collapse
No announcement yet.
Spring MCV + Mybatis + Anottations @SelectProvider Page Title Module
Move Remove Collapse
X
Conversation Detail Module
Collapse
  • Filter
  • Time
  • Show
Clear All
new posts

  • Spring MCV + Mybatis + Anottations @SelectProvider

    Hi

    I'm working on an application with Spring MVC and Annotations MyBatis. It turns out that I am using the annotation @ Selectprovider to create a dynamic query, but it pulls a empty error. I need help.
    The source code is as follows:

    Code:
    import static org.apache.ibatis.jdbc.SelectBuilder.*;
    
    public class SqlBuilderNecesidadCompra {
    
    	public static String selectByParameters(){
    		
    		
    		SELECT("CDNECESIDADCOMPRA, NMCEDULARESPONSABLE, CDESTADONECESIDAD, FEANULACIONAPROBACION," +
    				"FECREACION, FEMODIFICACION, DSOBSERVACION, CDUSUARIOANULAAPRUEBA, CDUSUARIOCREACION, CDUSUARIOMODIFICACION, DSOBSERVACIONANULACION ");
    		FROM("COM_NECESIDADESCOMPRAS");
    		
    		
    		return SQL();
    	}
    	
    }
    ************************************************** **************


    Code:
    public interface NecesidadCompraDAO {
    	String SELECT_BY_PK="SELECT CDNECESIDADCOMPRA, NMCEDULARESPONSABLE, CDESTADONECESIDAD, FEANULACIONAPROBACION," +
    		"FECREACION, FEMODIFICACION, DSOBSERVACION, CDUSUARIOANULAAPRUEBA, CDUSUARIOCREACION, CDUSUARIOMODIFICACION, DSOBSERVACIONANULACION " +
    		"FROM COM_NECESIDADESCOMPRAS WHERE CDNECESIDADCOMPRA=#{consecutivo}";
    	
    	String SELECTE_ALL_NECESIDADCOMPRA="SELECT CDNECESIDADCOMPRA, NMCEDULARESPONSABLE, CDESTADONECESIDAD, FEANULACIONAPROBACION," +
    			"FECREACION, FEMODIFICACION, DSOBSERVACION, CDUSUARIOANULAAPRUEBA, CDUSUARIOCREACION, CDUSUARIOMODIFICACION, DSOBSERVACIONANULACION " +
    			"FROM COM_NECESIDADESCOMPRAS ORDER BY ${orderBy} LIMIT ${start} , ${length}";
    	
    	String SAVE_NECESIDADCOMPRA="INSERT INTO COM_NECESIDADESCOMPRAS(NMCEDULARESPONSABLE, CDESTADONECESIDAD, FEANULACIONAPROBACION," +
    			"FECREACION, FEMODIFICACION, DSOBSERVACION, CDUSUARIOANULAAPRUEBA, CDUSUARIOCREACION, CDUSUARIOMODIFICACION) " +
    			"VALUES (#{responsable.username},#{estado.codigo},#{fechaAnulacionAprobacion},#{fechaCreacion}," +
    			"#{fechaModificacion},#{observacion},#{usuarioAnulacionAprobacion.username},#{usuarioCreacion.username},#{usuarioModificacion.username})";
    	
    	String UPDATE_NECESIDADCOMPRA="UPDATE COM_NECESIDADESCOMPRAS SET NMCEDULARESPONSABLE=#{responsable.username}, " +
    			"CDESTADONECESIDAD = #{estado.codigo}, FEMODIFICACION=#{fechaModificacion}, DSOBSERVACION=#{observacion}, " +
    			"CDUSUARIOMODIFICACION=#{usuarioModificacion.username}, DSOBSERVACIONANULACION=#{observacionAnulacionAprobacion} " +
    			"WHERE CDNECESIDADCOMPRA=#{consecutivo}";
    	
    	String UPDATE_ESTADONECESIDADCOMPRA="UPDATE COM_NECESIDADESCOMPRAS SET CDESTADONECESIDAD = #{estado.codigo}, FEANULACIONAPROBACION=#{fechaAnulacionAprobacion}, " +
    			"CDUSUARIOANULAAPRUEBA=#{usuarioAnulacionAprobacion.username}, DSOBSERVACIONANULACION=#{observacionAnulacionAprobacion} " +
    			"WHERE CDNECESIDADCOMPRA=#{consecutivo}";
    	
    	String DELETE_NECESIDADCOMPRA="DELETE FROM COM_NECESIDADESCOMPRAS WHERE #{consecutivo}";
    	
    	String COUNT_ALL_NECESIDADCOMPRA="SELECT COUNT(*) FROM COM_NECESIDADESCOMPRAS";
    	
    	
    	
    	@Select(SELECT_BY_PK)
    	@Results(value = {
    	        @Result(property = "consecutivo", column = "CDNECESIDADCOMPRA"),
    	        @Result(property = "responsable.username", column = "NMCEDULARESPONSABLE"),
    	        @Result(property = "estado", column = "CDESTADONECESIDAD"),
    	        @Result(property = "fechaAnulacionAprobacion", column = "FEANULACIONAPROBACION"),
    	        @Result(property = "fechaCreacion", column = "FECREACION"),
    	        @Result(property = "fechaModificacion", column = "FEMODIFICACION"),
    	        @Result(property = "observacion", column = "DSOBSERVACION"),
    	        @Result(property = "usuarioAnulacionAprobacion.username", column = "CDUSUARIOANULAAPRUEBA"),
    	        @Result(property = "usuarioCreacion.username", column = "CDUSUARIOCREACION"),
    	        @Result(property = "usuarioModificacion.username", column = "CDUSUARIOMODIFICACION"),
    	        @Result(property = "observacionAnulacionAprobacion", column = "DSOBSERVACIONANULACION"),
    	        
    	    })
    	public NecesidadCompra findByNecesidadCompra(Integer consecutivo);
    	
    	@Insert(SAVE_NECESIDADCOMPRA)
    	@Options(useGeneratedKeys = true, keyProperty = "consecutivo", flushCache=true)
    	public int saveNecesidadCompra(NecesidadCompra necesidadCompra);
    	
    	@Update(UPDATE_NECESIDADCOMPRA)
    	@Options(flushCache=true)
    	public int updateNecesidadCompra(NecesidadCompra necesidadCompra);
    	
    	@Update(UPDATE_ESTADONECESIDADCOMPRA)
    	@Options(flushCache=true)
    	public int updateEstadoNecesidadCompra(NecesidadCompra necesidadCompra);
    	
    	@Delete(DELETE_NECESIDADCOMPRA)
    	@Options(flushCache=true)
    	public int deleteNecesidadCompra(Integer consecutivo);
    	
    	@Select(SELECTE_ALL_NECESIDADCOMPRA)
    	@Results(value = { 
    			@Result(property = "consecutivo", column = "CDNECESIDADCOMPRA"),
    	        @Result(property = "responsable.username", column = "NMCEDULARESPONSABLE"),
    	        @Result(property = "estado", column = "CDESTADONECESIDAD"),
    	        @Result(property = "fechaAnulacionAprobacion", column = "FEANULACIONAPROBACION"),
    	        @Result(property = "fechaCreacion", column = "FECREACION"),
    	        @Result(property = "fechaModificacion", column = "FEMODIFICACION"),
    	        @Result(property = "observacion", column = "DSOBSERVACION"),
    	        @Result(property = "usuarioAnulacionAprobacion.username", column = "CDUSUARIOANULAAPRUEBA"),
    	        @Result(property = "usuarioCreacion.username", column = "CDUSUARIOCREACION"),
    	        @Result(property = "usuarioModificacion.username", column = "CDUSUARIOMODIFICACION"),
    	        @Result(property = "observacionAnulacionAprobacion", column = "DSOBSERVACIONANULACION"),
    	        @Result(property = "responsable", column = "NMCEDULARESPONSABLE",  javaType=Usuario.class,
            	one=@One(select="com.sf.crmycompras.persistence.seguridad.UsuarioDAO.findByUsuario"))
    	        
    	    }) 
    	public List<NecesidadCompra> getAllNecesidadCompra(NecesidadCompra necesidadCompra);
    	
    	@Select(COUNT_ALL_NECESIDADCOMPRA)
    	public Integer getCountNecesidadCompra();
    	
    	
    	
    	@Results(value = { 
    			@Result(property = "consecutivo", column = "CDNECESIDADCOMPRA"),
    	        @Result(property = "responsable.username", column = "NMCEDULARESPONSABLE"),
    	        @Result(property = "estado", column = "CDESTADONECESIDAD"),
    	        @Result(property = "fechaAnulacionAprobacion", column = "FEANULACIONAPROBACION"),
    	        @Result(property = "fechaCreacion", column = "FECREACION"),
    	        @Result(property = "fechaModificacion", column = "FEMODIFICACION"),
    	        @Result(property = "observacion", column = "DSOBSERVACION"),
    	        @Result(property = "usuarioAnulacionAprobacion.username", column = "CDUSUARIOANULAAPRUEBA"),
    	        @Result(property = "usuarioCreacion.username", column = "CDUSUARIOCREACION"),
    	        @Result(property = "usuarioModificacion.username", column = "CDUSUARIOMODIFICACION"),
    	        @Result(property = "observacionAnulacionAprobacion", column = "DSOBSERVACIONANULACION"),
    	        
    	        
    	    })
    	@SelectProvider(method="selectByParameters", type=SqlBuilderNecesidadCompra.class)
    	public List<NecesidadCompra> findByFilters();
    }
    ************************************************** *************

    And this is error:

    DEBUG java.sql.Connection:27 - ooo Connection Opened
    DEBUG org.mybatis.spring.transaction.SpringManagedTransa ction:27 - JDBC Connection [com.mchange.v2.c3p0.impl.NewProxyConnection@efe7f3] will not be managed by Spring
    DEBUG org.mybatis.spring.SqlSessionUtils:27 - SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSessi on@1a6b67b] was not registered for synchronization because synchronization is not active
    DEBUG com.mchange.v2.c3p0.stmt.GooGooStatementCache:457 - cxnStmtMgr.statementSet( com.mysql.jdbc.JDBC4Connection@b22224 ).size(): 5
    DEBUG com.mchange.v2.c3p0.stmt.GooGooStatementCache:196 - checkoutStatement: com.mchange.v2.c3p0.stmt.GlobalMaxOnlyStatementCac he stats -- total size: 9; checked out: 1; num connections: 3; num keys: 9
    DEBUG java.sql.PreparedStatement:27 - ==> Executing:
    DEBUG java.sql.PreparedStatement:27 - ==> Parameters:
    DEBUG com.mchange.v2.c3p0.impl.NewPooledConnection:430 - com.mchange.v2.c3p0.impl.NewPooledConnection@df8aa a handling a throwable.
    com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorEx ception: Query was empty
    at sun.reflect.NativeConstructorAccessorImpl.newInsta nce0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInsta nce(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newI nstance(Unknown Source)
    at java.lang.reflect.Constructor.newInstance(Unknown Source)
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:40 9)
    at com.mysql.jdbc.Util.getInstance(Util.java:384)
    at com.mysql.jdbc.SQLError.createSQLException(SQLErro r.java:1054)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.ja va:3566)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.ja va:3498)
    at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:19 59)
    at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java :2113)
    at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionIm pl.java:2568)
    at com.mysql.jdbc.PreparedStatement.executeInternal(P reparedStatement.java:2113)
    at com.mysql.jdbc.PreparedStatement.execute(PreparedS tatement.java:1364)
    at com.mchange.v2.c3p0.impl.NewProxyPreparedStatement .execute(NewProxyPreparedStatement.java:989)
    at sun.reflect.GeneratedMethodAccessor66.invoke(Unkno wn Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Un known Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.apache.ibatis.logging.jdbc.PreparedStatementLo gger.invoke(PreparedStatementLogger.java:45)
    at $Proxy95.execute(Unknown Source)
    at
Working...
X