@Table(name = "Bolas")
@Collum(name = "material")
//Dá pra definir regras nesses tipo de renomeações
*@Version*				//ativar controle de vers�o  do objeto
private long versao;

// Controla as versões, deve ser adicionado em cada classe que deseja-se controlar
// ele se autoincrementa, sendo: versão + 1
// ou seja, quando dois tentam acessar ao mesmo tempo o que conseguir primeiro vai mudar a versão e quando o outro for acessar ele vai tentar gravar uma versão antiga em um objeto que já foi alterado
// em resumo: controle de versionamento
	public Produto readLock(Object chave){
		try{
			String nome = (String) chave;
			TypedQuery<Produto> q = manager.createQuery("select p from Produto p where p.nome = :x", Produto.class);

			q.setLockMode(LockModeType.PESSIMISTIC_WRITE);
			//******************************************

			q.setParameter("x", nome);
			Produto prod = q.getSingleResult();
			return prod;
		}catch(NoResultException e){
			return null;
		}
	} //o lock para que quando for ler ele bloquei

Pesquisar sobre não entidades e dto e cashe