db4o Developer Community

db4o open source object database, native to Java and .NET
Welcome to db4o Developer Community Sign in | Join
in Search
More Search Options

Relacionamento entre objetos

Last post 08-07-2008, 02:51 PM by capetonis. 3 replies.
Sort Posts: Previous Next
  •  08-05-2008, 08:18 PM 50520

    Relacionamento entre objetos

    Olá

    Recentemente venho tentado usar o db4o, mas algumas coisas ainda estão dificeis de se implementar. Por exemplo...

     

    Possuo uma classe genero, status e filme.

    Genero e Status possuem codigo e descricao.

     Filme possui entre seus atributos (titulo, ano..etc), possui um atributo do tipo Genero e um do tipo Status

    A classe genero e status possuem um metodo que retorna uma collection<T> que uso para popular duas combos.

    Ao fazer o cadastro do filme, passo o codigo do genero e do status para um metodo no meu WebService:

            [WebMethod]
            [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
            public Boolean cadastrarFilme(string tituloOriginal,
                                            string tituloBr,
                                            int ano,
                                            int codGenero,
                                            int avaliacao,
                                            int codStatus)
            {
                clsFilme objFilme = new clsFilme();
                objFilme.TituloOriginal = tituloOriginal;
                objFilme.TituloBr = tituloBr;
                objFilme.Ano = ano;

                GeneroDAO objGeneroDAO = new GeneroDAO();
                objFilme.Genero = objGeneroDAO.obterGenero(codGenero);

                objFilme.Avaliacao = avaliacao;
                StatusDAO objStatusDao = new StatusDAO();
                objFilme.Status = objStatusDao.obterStatus(codStatus); ;

                FilmeDAO f = new FilmeDAO();
                try
                {
                    f.cadastrarFilme(objFilme);
                   
                    return true;
                }
                catch {
                    return false;
                }
            }

     

    Porém, ao invés de o filme ficar vinculado ao genero e status ao qual foi informado na combo e é recebido pelas suas DAO's, é gravado um novo registro em Genero e Status...

    Devo estar fazendo algo errado, mas não faço ideia.

    Por favor, alguém faz ideia?

     

    Obrigado desde já.
     

     

    Filed under: ,
  •  08-05-2008, 08:35 PM 50521 in reply to 50520

    Re: Relacionamento entre objetos

    Pessoal. Desculpe. Resolvi o problema.

     

    No método que insere o filme, adicionei:

    IObjectSet leitorGenero = db.QueryByExample(objFilme.Genero); //O genero que foi populado no webService
    if (leitorGenero.HasNext())
        {
            objFilme.Genero = (clsGenero)leitorGenero.Next();

        }

    db.Store(objFilme)

     

    Favor deletar o topico. Obrigado 

  •  08-06-2008, 12:35 PM 50542 in reply to 50521

    Re: Relacionamento entre objetos

    Mesmo tendo resolvido sozinho, é um bom exemplo de como fazer os relacionamentos funcionarem...

    mas uma coisa.. na hora que vc vai obter o genero no filme do seu  DAO

    objFilme.Genero = objGeneroDAO.obterGenero(codGenero);

    na hora de obter o genero, vc ja poderia fazer esse metodo que vc fez na sua resposta

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    public Genero obterGenero(codGenero)
    {
      Genero g = new Genero();
      g.codGenero= codGenero;
      ObjectSet leitorGenero = db.QueryByExample(
    g);
      if (leitorGenero.HasNext())
      {
        return (clsGenero)leitorGenero.Next();
      }
      return null;
    }

    Ezequiel Bertti
    ebertti@gmail.com

    VISITE BÚZIOS
    www.agh.com.br
  •  08-07-2008, 02:51 PM 50556 in reply to 50542

    Re: Relacionamento entre objetos

    Ótima dica Ebertti! Vou tentar assim.

    Obrigado. 


View as RSS news feed in XML