GOSTARIA QUE ALGUEM ME EXPLICASSE PQ ESSA LINHA ESTA DANDO ERRO?!?!!ESTOU TRABALHANDO COM JPA E EJB
GRATO
//Recuperar um objeto no banco
Midia midia = em.find( Midia.class, codigo );
GOSTARIA QUE ALGUEM ME EXPLICASSE PQ ESSA LINHA ESTA DANDO ERRO?!?!!ESTOU TRABALHANDO COM JPA E EJB
GRATO
//Recuperar um objeto no banco
Midia midia = em.find( Midia.class, codigo );
Então israel, poste sua classe e a exception que esta sendo gerada, assim fica dificil dizer qual é o erro, por exemplo, pode estar acontecendo varias coisas, dando um NullPointerException no EntityManager, a variavel codigo caso ela seja uma wrapper pode estar com valor null, e etc.
Post o erro e o codigo que vai ficar mais fácil de descobrir.
Falou.
ok…
@Stateless(name="RepositorioMidiasHypersonic")
public class RepositorioMidiasHypersonic implements Serializable, RepositorioMidiaIf{
private static final long serialVersionUID = -6944797726065905377L;
@PersistenceContext(unitName="iMidiasJPA")
private EntityManager em;
private RepositorioMidiasHypersonic(){
}
public void cadastrarMidia(Midia midia){
em.persist(midia);
}
//Recuperar um objeto no banco
Midia midia = em.find( Midia.class, codigo );
public Midia buscaMidiaPorNome(String nome) {
return (Midia)em.createQuery("from Midia where nome like ':nome%'").setParameter("nome",
nome).getResultList().get(0);
}
public void removerMidia(Midia midia) throws MidiaInexistenteException{
em.remove(midia);
throw new MidiaInexistenteException("A m�dia que deseja remover n�o existe!");
}
}
import com.gugawag.imidias.modelo.Midia;
import net.sf.cglib.core.Local;
/**
*
* @author Israel
*/
@Local
public interface RepositorioMidiaIf {
public void cadastraMidia(Midia midia);
}
@Stateless(name="imidiasApp")
public class iMidiasApp {
/**
* @param args
*/
public static void main(String[] args) {
@EJB
RepositorioMidiaIf repMidias = null;
try {
InitialContext context = new InitialContext();
repMidias = (RepositorioMidiaIf) context.lookup( "RepositorioMidiasHypersonic/remote" );
} catch (NamingException e) {
e.printStackTrace();
}
}
}
@Stateless(name="FachadaiMidias")
public class FachadaiMidias implements Fachadaif{
@PersistenceContext(unitName="iMidiasJPA")
private ControladorGeral controladorGeral;
@EJB
private ControladorMidiasIf controladorMidias;
private ControladorListas controladorListas;
public void acrescentaMidia(Midia midia){
controladorMidias.acrescentaMidia(midia);
}
}
import net.sf.cglib.core.Local;
/@Local
interface Fachadaif {
}
Stateless=("ControladorMidias")
public class ControladorMidias implements Serializable, ControladorMidiasIf{
@PersistenceContext(unitName="iMidiasJPA")
private static final long serialVersionUID = -8863737485546468270L;
@EJB
private RepositorioMidiasIf repmidias;
public ControladorMidias() {
}
public void acrescentaMidia(Midia midia) {
repmidias.acrescentaMidia(midia);
}
import net.sf.cglib.core.Local;
@Local
public interface ControladorMidiasIf {
public void acrescentaMidia(Midia midia);
}
@Entity
@Table(name="TB_FILME")
@DiscriminatorValue(value="F")
public class Filme extends Midia{
/**
*
*/
private static final long serialVersionUID = 7157470829082731770L;
private String diretor, atores;
public Filme(){
super(null, null);
}
public Filme(String nome, String genero) {
super(nome, genero);
}
public Filme(String nome, String genero, String diretor, String atores) {
super(nome, genero);
this.diretor = diretor;
this.atores = atores;
}
public String getDiretor() {
return diretor;
}
public void setDiretor(String diretor) {
this.diretor = diretor;
}
/**
* A lista de atores, separados por v�rgula.
* return atores
*/
public String getAtores() {
return atores;
}
/**
* A lista de atores, separados por v�rgula.
* @param atores
*/
public void setAtores(String atores) {
this.atores = atores;
}
public String toString(){
return "= Filme = | C�digo: " + getCodigo() + " | Nome: " + getNome() + " | G�nero: " + getGenero() + " | Diretor: " + diretor + " | Atores: " + atores;
}
}
@Entity
@Table(name="TB_LIVRO")
@DiscriminatorValue(value="L")
public class Livro extends Midia{
/**
*
*/
private static final long serialVersionUID = 5508172425802854334L;
private String ISBN;
private String autor, editora;
private short quantidadePaginas;
public Livro() {
super(null, null);
}
public Livro(String nome, String genero) {
super(nome, genero);
}
public Livro(String nome, String genero, String isbn, String autor,
String editora, short quantidadePaginas) {
super(nome, genero);
ISBN = isbn;
this.autor = autor;
this.editora = editora;
this.quantidadePaginas = quantidadePaginas;
}
/**
* N�mero �nico do livro (ISBN)
* @return O ISBN
*/
public String getISBN() {
return ISBN;
}
public void setISBN(String isbn) {
ISBN = isbn;
}
public String getAutor() {
return autor;
}
public void setAutor(String autor) {
this.autor = autor;
}
public String getEditora() {
return editora;
}
public void setEditora(String editora) {
this.editora = editora;
}
public short getQuantidadePaginas() {
return quantidadePaginas;
}
public void setQuantidadePaginas(short quantidadePaginas) {
this.quantidadePaginas = quantidadePaginas;
}
public String toString(){
return "= Livro = | C�digo: " + getCodigo() + " | Nome: " + getNome() + " | G�nero: " + getGenero() + " | ISBN: " + getISBN() + " | Autor: " + getAutor() + " | Editora: " + getEditora() + " | Quantidade P�ginas: " + getQuantidadePaginas();
}
}
@Entity
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name="TIPO_MIDIA",discriminatorType=DiscriminatorType.CHAR)
@Table(name="TB_MIDIA")
@DiscriminatorValue(value="MI")
public class Midia implements Serializable{
private static final long serialVersionUID = 2355293220614319026L;
private String genero, nome, caminhoArquivo;
@Id @GeneratedValue
private int codigo;
@Column(name="TIPO_MIDIA",length=1,nullable=false,insertable=true,updatable=true)
private Character tipoMidia;
@ManyToMany(mappedBy = "midias")
private List<Lista> listas;
public Character getTipoMidia() {
return tipoMidia;
}
public void setTipoMidia(Character tipoMidia) {
this.tipoMidia = tipoMidia;
}
public Midia() {
}
public Midia(String nome, String genero) {
super();
this.genero = genero;
this.nome = nome;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getGenero() {
return genero;
}
public void setGenero(String genero) {
this.genero = genero;
}
public String getCaminhoArquivo() {
return caminhoArquivo;
}
public void setCaminhoArquivo(String caminhoArquivo) {
this.caminhoArquivo = caminhoArquivo;
}
public int getCodigo() {
return codigo;
}
public void setCodigo(int codigo) {
this.codigo = codigo;
}
public String toString(){
return "C�digo: " + codigo + "Nome: " + nome + " G�nero: " + genero;
}
public boolean equals(Midia midia){
return codigo == midia.getCodigo();
}
}
@Entity
@Table(name="TB_MUSICA")
@DiscriminatorValue(value="M")
public class Musica extends Midia{
/**
*
*/
private static final long serialVersionUID = 2586034876086109785L;
private String compositor, interprete;
public Musica(){
super(null, null);
}
public Musica(String nome, String compositor, String interprete,
String genero) {
super(nome, genero);
this.compositor = compositor;
this.interprete = interprete;
}
public String getCompositor() {
return compositor;
}
public void setCompositor(String compositor) {
this.compositor = compositor;
}
public String getInterprete() {
return interprete;
}
public void setInterprete(String interprete) {
this.interprete = interprete;
}
public String toString(){
return "= M�sica = | C�digo: " + getCodigo() + " | Nome: " + getNome() + " | G�nero: " + getGenero() + " | Compositor: " + compositor + " | Int�rprete: " + interprete;
}
}
ai tem a parte do jsf que nao to conseguindo “enxergar” a parte logica…
espero que possa me ajudar
Olá.
Por favor, não poste tópicos com caps lock, não há necessidade disso ok? Bem como pedir ajuda utilizando caps lock, passa a impressão que está gritando.
Sobre o seu problema, adicione:
/Recuperar um objeto no banco
Midia midia = em.find( Midia.class, codigo );
Há um método ok? E mais um detalhe, como o nosso amigo pediu, qual a Exception que está ocorrendo?
E a parte de o .jsf não estar “enxergando” seus EJBs pode ser configuração do arquivo .xml, verifique isto.
Abraços.