Entity erro ?[resolvido]

Pessoal Bom Dia !

Fiz uma interface Entity simples, fiz uma class Abstrata que implementa a Entity
Até ai ta otimo, dentro da Abstrata tem um campo version, que é o campo de versionamento do oracle, para concorrência, ta tudo perfeito funciona, todas as entidades tem esse campo VERSION, o problema que agora não quero mais esse campo version, se eu comentar esse campo na classe AppEntity , da o seguinte erro:

[quote]
11:01:37,701 ERROR [STDERR] java.lang.IllegalArgumentException: EntityManagerFactory not found in JNDI : java:/marcacaoconsultaEntityManagerFactory

11:01:37,703 ERROR [STDERR] at org.jboss.seam.persistence.ManagedPersistenceContext.getEntityManagerFactoryFromJndiOrValueBinding(ManagedPersistenceContext.java:261)

11:01:37,703 ERROR [STDERR] at org.jboss.seam.persistence.ManagedPersistenceContext.initEntityManager(ManagedPersistenceContext.java:79)

11:01:37,704 ERROR [STDERR] at org.jboss.seam.persistence.ManagedPersistenceContext.getEntityManager(ManagedPersistenceContext.java:108)

11:01:37,704 ERROR [STDERR] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

11:01:37,704 ERROR [STDERR] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

11:01:37,705 ERROR [STDERR] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

11:01:37,705 ERROR [STDERR] at java.lang.reflect.Method.invoke(Unknown Source)

11:01:37,705 ERROR [STDERR] at org.jboss.seam.util.Reflections.invoke(Reflections.java:22)[/quote]


import java.io.Serializable;

public interface Entity extends Serializable {

	public Long getId();
	
	public void setId(Long id);
	
}
import java.io.Serializable;

import javax.persistence.Column;
import javax.persistence.Version;

@SuppressWarnings({ "unused" })
public abstract class AppEntity implements Entity{
	private static final long serialVersionUID = 1L;
	
	@Version
	@Column(name = "VERSAO", length = 10, nullable = false)
	private Long versao;
	

	public Long getVersao() {
		return versao;
	}

	public void setVersao(Long versao) {
		this.versao = versao;
	}

	public Long getId() {
		return null;
	}

	public void setId(Long id) {		
	}

	
}

olá juniorsatanas,

Por acaso você não esqueceu de colocar o @Entity ???

Esse é o erro completo?

Você precisa entender o conceito de entity cara.

Para uma classe ser entity ela precisa estar anotada com @Entity, precisa ter um campo @Id e ter um construtor padrão.

Pessoal, sim todas as entidades tem @Entity

Seguinte:

public abstract class AppEntity implements Entity{
public interface Entity extends Serializable {

Minhas Entidades tão assim:


@Entity
@Table(name = "TB_AGENDA_CONSULTA")
public class AgendaConsulta extends AppEntity implements Serializable {
	private static final long serialVersionUID = 1L;

Dese modo ta funcionando, e criado um campo @VERSION em todas entidades… negocio que não quero usar esse campo pq tem outras tabelas que não tem esse campo !

[quote=juniorsatanas]Pessoal, sim todas as entidades tem @Entity

Seguinte:

public abstract class AppEntity implements Entity{
public interface Entity extends Serializable {

Minhas Entidades tão assim:


@Entity
@Table(name = "TB_AGENDA_CONSULTA")
public class AgendaConsulta extends AppEntity implements Serializable {
	private static final long serialVersionUID = 1L;

Dese modo ta funcionando, e criado um campo @VERSION em todas entidades… negocio que não quero usar esse campo pq tem outras tabelas que não tem esse campo !

[/quote]Mas para o implements Entity?
Novamente, você precisa estudar JPA cara. =/
Se você está utilizando herança você vai ter que escolher um tipo de herança e adicionar na sua Entity.
Existem 3: uma tabela por classe, uma única tabela por herança ou uma tabela por classe concreta.

Se você continuar programando por tentativa vai continuar tendo esses erros loucos. =/

jakefrog Bom dia !

Ta errado dessa maneira ? e por que funciona !?

Acho que nos estamos falando de coisas diferente, ou não conseguir fazer vc entender o meu problema !

Problema : Não preciso do campo @VERSION
Se vc ver aqui em baixo eu dependo de : public class AppServiceImpl<E extends AppEntity> implements AppService<E>{

Obrigado pela dica !



@SuppressWarnings("unchecked")
public class AppServiceImpl&lt;E extends AppEntity&gt; implements AppService&lt;E&gt;{
	
	
	private static final long serialVersionUID = 1L;
	@In
	private EntityManager entityManager;

	protected EntityManager getEntityManager(){
		return entityManager;
	}
	
	public Session getSession() {
		Session session = (Session) getEntityManager().getDelegate();
		return session;
	}
	
	public E pesquisarPorId(E entity) throws Exception {
		if(entity!=null){
			return pesquisarPorId(removerHibernateProxy(entity).getClass(),entity.getId());
		}
		
		return null;
	}
	
	public &lt;T extends Entity&gt; E pesquisarPorId(Class&lt;T&gt; entityClazz, Serializable id) {

		T retorno = getEntityManager().find(entityClazz, id);

		return (E) retorno;
	}
	
	public E atualizar(E entity) throws Exception {
		@SuppressWarnings("unused")
		Entity entidade = getEntityManager().merge(entity);
		
		return (E) entity;
	}

	public E excluir(E entity) throws Exception {
		entity = pesquisarPorId(entity);
		getEntityManager().remove(removerHibernateProxy(entity));
		return entity;
	}

	public E salvar(E entity) throws Exception {
		getEntityManager().persist(entity);
		return (E) entity;
	}
	
	protected E removerHibernateProxy(E entity) {
		
		if (entity!=null && HibernateProxy.class.isAssignableFrom(entity.getClass())) {
			LazyInitializer lazyInitializer = ((HibernateProxy) entity)
					.getHibernateLazyInitializer();

			entity = (E) lazyInitializer.getImplementation();
		}

		return entity;
	}
	
	
	public List&lt;E&gt; pesquisarPorParamentros(E appEntity) throws Exception {
		try {
			
			Criteria criteria = createCriteria(appEntity, MatchMode.ANYWHERE);
			
			return criteria.list();
		} catch (Exception ex) {
			ex.printStackTrace();
		}
		return null;
	}
	
	
	
	public Criteria createCriteria(Entity instance, MatchMode matchMode) throws Exception {

		Criteria criteria = getSession().createCriteria(instance.getClass());
		if (instance.getId() != null) {
			criteria.add(Restrictions.idEq(instance.getId()));
		} else {
			Example example = createExample(instance, matchMode);
			criteria.add(example);				 
		}
		return criteria;
	}
	
	@SuppressWarnings("serial")
	public Example createExample(Object instance, MatchMode matchMode) {

		Example example = Example.create(instance).excludeZeroes().enableLike(matchMode).ignoreCase();
		
		/**
		 * Adicionando property selector para eliminar propriedades nulas e string vazias no crit�rio da
		 * busca.
		 */
		PropertySelector notNullOrEmptySelector = new PropertySelector() {
			public boolean include(Object object, String propertyName, org.hibernate.type.Type type) {
				return object != null && (!(object instanceof String) || !((String) object).equals(""));
			}
		};
		example.setPropertySelector(notNullOrEmptySelector);

		return example;

	}

[quote=juniorsatanas]jakefrog Bom dia !

Ta errado dessa maneira ? e por que funciona !?

Acho que nos estamos falando de coisas diferente, ou não conseguir fazer vc entender o meu problema !

Problema : Não preciso do campo @VERSION
[/quote]então realmente estamos.
Nunca vi esse erro sendo pequeno do modo como está.
Sempre utilizei JPA com Hibernate e nunca vi ninguem sendo obrigado a preencher o @Version a não ser que utilizasse algo de controle de versão.

Boa sorte ae.

Como tu faz tua arquitetura ?

da um exemplo ai !

[quote=juniorsatanas]Como tu faz tua arquitetura ?

da um exemplo ai !

[/quote]Tem dois posts com aplicação completa aí na minha assinatura. [=
Eu faço exatamente desse jeito.

Tem quase um site na tua assinatura qual é ?

Vou ler agora mesmo !

Achei brigado !

Fota e ter que ficar olhando tua foto e ler ao mesmo tempo … FEIO PRA DIABO, SORRIU COMO VENDENDOR DE CREME DENTAL

VALEU.