Pessoal , inclui a seguinte linha no meu projeto :
EntityManagerFactory factory= Persistence.createEntityManagerFactory("lims-pu");
//////////////// erro na linha abaixo :
EntityManager manager= factory.createEntityManager();
CriteriaBuilder cb= manager.getCriteriaBuilder();
CriteriaQuery<Tuple> c1 = cb.createQuery(Tuple.class);
Root<PrecoPorMetodo> l1 = c1.from(PrecoPorMetodo.class);
O meu erro de log esta abaixo:
09:17:38,548 INFO [SettingsFactory] Default entity-mode: pojo
09:17:38,548 INFO [SettingsFactory] Named query checking : enabled
09:17:38,548 INFO [SessionFactoryImpl] building session factory
09:17:38,548 WARN [ConfigurationFactory] No configuration found. Configuring eh
cache from ehcache-failsafe.xml found in the classpath: jar:file:/C:/evandro/in
stalacao/eclipse-jee-indigo-SR2-win32/jboss-4.2.3.GA/server/default/tmp/deploy/t
mp461432161572421082lims.ear-contents/ehcache-1.2.3.jar!/ehcache-failsafe.xml
09:17:38,558 WARN [CacheManager] Creating a new instance of CacheManager using
the diskStorePath “C:\Users\EVANDR~1.ABR\AppData\Local\Temp” which is already u
sed by an existing CacheManager.
The source of the configuration was classpath.
The diskStore path for this CacheManager will be set to C:\Users\EVANDR~1.ABR\Ap
pData\Local\Temp\ehcache_auto_created_1351772258558.
To avoid this warning consider using the CacheManager factory methods to create
a singleton CacheManager or specifying a separate ehcache configuration (ehcache
.xml) for each CacheManager instance.
09:17:38,558 INFO [SessionFactoryObjectFactory] Not binding factory to JNDI, no
JNDI name configured
Não vi nenhum erro aí, só warnings.
desculpem o resto do erro :
at java.lang.Thread.run(Thread.java:619)
Caused by: javax.el.ELException: /file:/C:/evandro/instalacao/eclipse-jee-indigo
-SR2-win32/jboss-4.2.3.GA/server/default/tmp/deploy/tmp1643087879052703622lims.e
ar-contents/lims-web-1.0-SNAPSHOT-exp.war/WEB-INF/lib/lims-web-1.0-SNAPSHOT.jar!
/META-INF/tags/componentes/orcamento/itensOrcamento.jspx @233,108 value="#{Mante
rItemOrcamentoMB.itemAtual.totalPorAmostra}": Error reading ‘totalPorAmostra’ on
type br.com.cqa.lims.coleta.orcamento.ItemOrcamentoColetavel
at com.sun.facelets.el.TagValueExpression.getValue(TagValueExpression.ja
va:76)
at javax.faces.component.UIOutput.getValue(UIOutput.java:184)
… 61 more
Caused by: java.lang.NullPointerException
at br.com.cqa.lims.orcamento.PrecoPorMetodo.listaTodosMetodosDaAmostraCo
mPrecoGrupo(PrecoPorMetodo.java:297)
at br.com.cqa.lims.orcamento.ItemOrcamento.getTotalPorAmostra(ItemOrcame
nto.java:155)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at javax.el.BeanELResolver.getValue(BeanELResolver.java:62)
at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:53)
at com.sun.faces.el.FacesCompositeELResolver.getValue(FacesCompositeELRe
solver.java:72)
at org.apache.el.parser.AstValue.getValue(AstValue.java:97)
at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:1
86)
at com.sun.facelets.el.TagValueExpression.getValue(TagValueExpression.ja
va:71)
… 62 more
[quote]Caused by: java.lang.NullPointerException
at br.com.cqa.lims.orcamento.PrecoPorMetodo.listaTodosMetodosDaAmostraComPrecoGrupo(PrecoPorMetodo.java:297) [/quote]
Posta pelo menos os códigos das suas entidades para termos ideia do tipo de relacionamento que existe entre elas.
[quote=marciobarroso]Posta pelo menos os códigos das suas entidades para termos ideia do tipo de relacionamento que existe entre elas.[/quote]Uai, oq o código de uma entidade vai impactar em um nullpointer? O.o
Pela Criteria que foi criada, parece que ele usa composição para as entidades ( entenda entidade como os pojos que mapeiam ou representam as entidades do banco de dados ).
Muitas vezes esquecemos de inicializar atributos que são usados para fazer o relacionamento.
Caused by: java.lang.NullPointerException
at br.com.cqa.lims.orcamento.PrecoPorMetodo.listaTodosMetodosDaAmostraComPrecoGrupo(PrecoPorMetodo.java:297)
Por isso pedi para postar o código das entidades. A classe PrecoPorMetodo parece ser uma entidade.
[quote=marciobarroso]Pela Criteria que foi criada, parece que ele usa composição para as entidades ( entenda entidade como os pojos que mapeiam ou representam as entidades do banco de dados ).
Muitas vezes esquecemos de inicializar atributos que são usados para fazer o relacionamento.
Caused by: java.lang.NullPointerException
at br.com.cqa.lims.orcamento.PrecoPorMetodo.listaTodosMetodosDaAmostraComPrecoGrupo(PrecoPorMetodo.java:297)
Por isso pedi para postar o código das entidades. A classe PrecoPorMetodo parece ser uma entidade.[/quote]Mas o JPA já não faz isso por você? Desculpe, estou perguntando pois nunca precisei fazer isso. [=
Vou dar um exemplo do que eu quis dizer… Neste exemplo não estou usando EntityManager e por isso a Critéria é criada de forma diferente.
public class UserDaoImpl extends BaseDaoImpl<User> implements UserDao {
protected void addPropertiedToCriteria(DetachedCriteria criteria, User example) {
if ( example.getEmail() != null ) {
if( example.getEmail().getId() > 0 ) {
criteria.add(Expression.eq("email.id", example.getEmail().getId()));
}
if( example.getEmail().getDescription() != null && !"".equals(example.getEmail().getDescription()) ) {
criteria.add(Expression.eq("email.description", example.getEmail().getDescription()));
}
}
}
}
Se eu não fizer as validações feitas nos ifs, eu teria um monte de nullpointerexception …
marciobarroso ,
segue abaixo a entidade:
chamada
*******************************************************************************************
@Entity
@Domain( { "Orcamento", "Coleta", "ExecucaoAnalise" })
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
public abstract class ItemOrcamento extends EntidadeAuditavel {
public Dinheiro getTotalPorAmostra() {
PrecoMetodoEspecificacao precMetEspec = new PrecoMetodoEspecificacao();
..................
}
}
******************************************************************************************
@Entity(name="PrecoPorMetodo")
@Table(name="preco_por_metodo")
public class PrecoPorMetodo extends Entidade{
private static final long serialVersionUID = -4715774435380827257L;
private int grupo;
@ManyToOne
@JoinColumn(name="metodo_id", nullable=false)
private Metodo metodo;
@ManyToOne
@JoinColumn(name="especificacao_id", nullable=false)
private Especificacao especificacao;
@Embedded
private Dinheiro preco = new Dinheiro();
getters e setters
public GruposDoMetodo listaGruposDoMetodo(Metodo metodo){
System.out.println("listaGruposDoMetodo ");
GruposDoMetodo gruposDoMetodo = new GruposDoMetodo();
Map<Long, Dinheiro> listaGruposDoMetodo = new HashMap <Long, Dinheiro>();
gruposDoMetodo.setMetodoId(metodo.getId());
try{
OrcamentoServiceBean osb = new OrcamentoServiceBean();
List<PrecoPorMetodo> resultado1 = osb.selecionaprecopormetodo(metodo.getId().toString());
********************************************************************************************
@Stateless
@LocalBinding(jndiBinding = "OrcamentoServiceBean/local")
public class OrcamentoServiceBean implements OrcamentoServiceLocal {
@PersistenceContext(unitName = "lims-pu")
private EntityManager em;
@EJB(name = "HistoricoServiceBean/local")
private HistoricoServiceLocal historicoService;
@EJB(name = "NumeradorServiceBean/local")
private NumeradorServiceLocal numeradorService;
@EJB(name = "QuestionarioServiceBean/local")
private QuestionarioServiceLocal questionarioService;
@EJB(name = "ConfirmarOrcamentoServiceBean/local")
private ConfirmarOrcamentoServiceLocal confirmarOrcamentoService;
public List<PrecoPorMetodo> selecionaprecopormetodo(String vMetodo_id) {
try {
StringBuffer sbQuery = new StringBuffer();
sbQuery.append(" FROM PrecoPorMetodo ");
Query query = em.createQuery(sbQuery.toString());
return query.getResultList();
}
catch (Throwable ex) {
System.err.println("Initial SessionFactory creation failed.----" + ex);
throw new ExceptionInInitializerError(ex);
}
}
Quando eu vou no metodo "selecionaprecopormetodo(String vMetodo_id) " o @PersistenceContext(unitName = “lims-pu”)
private EntityManager em; FICA NULLO.
Alguem pode me ajudar ???