JPa..Duvida no uso do metodo find....Can not find by Class

Olá,

estou usando um DAO generico e estou em duvida como chamar o metodo find
passando um objeto ???

Pois tenho que passar para o metodo um entity public T find(T entity)

o que tenho que passar ??? não entendi ???

se alguém puder me ajudar …


            VDao vDao = new VDao();
		Device device = new Device();
		device.setId(02);
		Device d = vDao.find(imsDeviceVendor);
		
		System.out.println("objeto ="+imsDevicevendor1);


 public T find(T entity) throws DaoException {
    	T t = null;
    	try {
    		t = imsDBMng.getManager().find(domainClass, entity);
    		return t;
    	} catch(Exception e) {
    		throw new DaoException(getErrorCode(METHOD_FIND_BY_CLASS), "Can not find by Class", e);
    	}
    }

Exception in thread "main" br.com.certisign.core.persistence.DaoException: 221::Can not find by Class
	at br.com.certisign.core.persistence.AbstractBaseDao.find(AbstractBaseDao.java:72)
	at br.com.certisign.ims.data.persistence.teste.main(teste.java:272)
Caused by: java.lang.IllegalArgumentException: br.com.certisign.ims.data.model.device.ImsDeviceVendor
	at org.hibernate.ejb.AbstractEntityManagerImpl.find(AbstractEntityManagerImpl.java:199)
	at br.com.certisign.core.persistence.AbstractBaseDao.find(AbstractBaseDao.java:69)
	... 1 more
Caused by: java.lang.ClassCastException: br.com.certisign.ims.data.model.device.ImsDeviceVendor
	at org.hibernate.ejb.AbstractEntityManagerImpl.find(AbstractEntityManagerImpl.java:182)
	... 2 more
- Transaction strategy: org.hibernate.transaction.JDBCTransactionFactory
- No TransactionManagerLookup configured (in JTA environment, use of read-write or transacti

[quote=paribe]Olá,

estou usando um DAO generico e estou em duvida como chamar o metodo find
passando um objeto ???

Pois tenho que passar para o metodo um entity public T find(T entity)

o que tenho que passar ??? não entendi ???

se alguém puder me ajudar …


            VDao vDao = new VDao();
		Device device = new Device();
		device.setId(02);
		Device d = vDao.find(imsDeviceVendor);
		
		System.out.println("objeto ="+imsDevicevendor1);


 public T find(T entity) throws DaoException {
    	T t = null;
    	try {
    		t = imsDBMng.getManager().find(domainClass, entity);
    		return t;
    	} catch(Exception e) {
    		throw new DaoException(getErrorCode(METHOD_FIND_BY_CLASS), "Can not find by Class", e);
    	}
    }

[code]

Exception in thread “main” br.com.certisign.core.persistence.DaoException: 221::Can not find by Class
at br.com.certisign.core.persistence.AbstractBaseDao.find(AbstractBaseDao.java:72)
at br.com.certisign.ims.data.persistence.teste.main(teste.java:272)
Caused by: java.lang.IllegalArgumentException: br.com.certisign.ims.data.model.device.ImsDeviceVendor
at org.hibernate.ejb.AbstractEntityManagerImpl.find(AbstractEntityManagerImpl.java:199)
at br.com.certisign.core.persistence.AbstractBaseDao.find(AbstractBaseDao.java:69)
… 1 more
Caused by: java.lang.ClassCastException: br.com.certisign.ims.data.model.device.ImsDeviceVendor
at org.hibernate.ejb.AbstractEntityManagerImpl.find(AbstractEntityManagerImpl.java:182)
… 2 more

  • Transaction strategy: org.hibernate.transaction.JDBCTransactionFactory
  • No TransactionManagerLookup configured (in JTA environment, use of read-write or transacti
    [/code][/quote]

Quando vc for implementar essa Dao, o “T” será a classe que vc deseja fazer o find…

então foi o que fiz passei o objeto que solicita no metodo como parametro

não entendi o que tenho que passar então ???

        VDao vDao = new VDao();   
        Device device = new Device();   
        device.setId(02);   
        Device d = vDao.find(imsDeviceVendor);   
  
        System.out.println("objeto ="+imsDevicevendor1);