[Logo] Mentawai Forum - Mentawai Web Framework
  [Search] Search   [Recent Topics] Recent Topics   [Members]  Member Listing   [Groups] Back to home page 
[Register] Register / 
[Login] Login 
Persistindo Objeto com FK  XML
Forum Index -> Comentários Gerais
Author Message
rfogo



Joined: 06/09/2010 11:11:08
Messages: 1
Offline

Tenho duas tabelas no Banco:

Code:
 Usuario
 Integer usercodigo PK;
 ...
 
 Blog
 Integer blogcodigo PK;
 Integer usercodigo FK;
 ...
 


Esotu tentando adcionar um novo Blog com o Objeto Usuario (usercodigo) como fk, lendo os exemplos na comunidade nao obtive sucesso.

A outra solucao que tentei foi pegar o usuario da secao e adcionar na coluna usercodigo. Tambem nao consegui adcionar pois nao e aceitavel o cast para usar o getUsercodigo do Bean Usuario.
Code:
 			Blog b = input.getObject(Blog.class);
 					
 			System.out.println(getUserSession().toString());
 			
 		    b.setUsercodigo(((Usuario)getUserSession()).getUsercodigo());
 
 			b.insert(getBeanSession()); // you can also inject the beanSession inside the object and call insert();
 
 			setUserSession(b);
 
 			addMessage("Seu cadastro foi efetuado com sucesso!");
 
 			return CREATED;
 		}
 	}
 
 


Bean:
Code:
 public class Blog extends BeanBase{
 	
 	private Integer blogcodigo;
 	private String blognome;
 	private Integer usercodigo;
 	private Usuario usuario=null;
 	
 	public Integer getUsercodigo() {
 		return usercodigo;
 	}
 	public void setUsercodigo(Integer usercodigo) {
 		this.usercodigo = usercodigo;
 	}
 	public Usuario getUsuario() {
 		return usuario;
 	}
 	public void setUsuario(Usuario usuario) {
 		this.usuario = usuario;
 	}
 	
 	public Integer getBlogcodigo() {
 		return blogcodigo;
 	}
 	public void setBlogcodigo(Integer blogcodigo) {
 		this.blogcodigo = blogcodigo;
 	}
 	public String getBlognome() {
 		return blognome;
 	}
 	public void setBlognome(String blognome) {
 		this.blognome = blognome;
 	}
 
 }
 


BaseAction:
Code:
 public class BlogAction extends BaseAction{
 
 	private BeanSession getBeanSession() {
 
 		return (BeanSession) input.getValue("beanSession");
 	}
 	
 	private BlogDAO blogDAO;
 	
 	// Will be injected...
 	public void setBlogDAO(BlogDAO blogDAO) {
 		this.blogDAO = blogDAO;
 	}	
 
 	public boolean bypassAuthentication(String innerAction) {
 
 		if (innerAction != null && innerAction.equals("add")) return true;
 
 		return false;
 	}
 
 
 	public String add() throws Exception {
 
 		if (!isPost()) {
 
 			return ERROR;
 
 		} else {
 
 			Blog b = input.getObject(Blog.class);
 					
 			System.out.println(getUserSession().toString());
 			
 		    b.setUsercodigo(((Usuario)getUserSession()).getUsercodigo());
 
 			b.insert(getBeanSession()); // you can also inject the beanSession inside the object and call insert();
 
 			setUserSession(b);
 
 			addMessage("Seu cadastro foi efetuado com sucesso!");
 
 			return CREATED;
 		}
 	}
 
 	public String lista() throws Exception {
 
 		List<Blog> l = blogDAO.listAll();
 
 		
 		output.setValue("blogs", l);
 		
 		return SUCCESS;
 	}
 
 }
 
 


DAO:
Code:
 public interface BlogDAO {
 	
 	public List<Blog> find(Blog b);
 	
 	public Usuario findByBlogcodigo(String blogcodigo);
 	
 	public List<Blog> listAll() throws Exception;
 		
 }
 


MetaBean:
Code:
 package br.com.blogclient.dao.metabean;
 
 import java.sql.Connection;
 import java.util.List;
 
 import org.mentawai.bean.BeanSession;
 import org.mentawai.bean.jdbc.JdbcBeanSession;
 
 import br.com.blogclient.bean.Blog;
 import br.com.blogclient.bean.Usuario;
 import br.com.blogclient.dao.BlogDAO;
 
 public class MetaBeanBlogDAO implements BlogDAO{
 	
 	private BeanSession session;
 	
 	public void setBeanSession(BeanSession session) {
 		this.session = session;
 	}
 	
 private Connection getConn() {
 		
 		if (session instanceof JdbcBeanSession) {
 		
 			JdbcBeanSession jbs = (JdbcBeanSession) session;
 			
 			return jbs.getConnection();
 			
 		}
 		
 		throw new IllegalStateException("Session is not a JdbcBeanSession: " + (session != null ? session.getClass() : "NULL"));
 	}
 
 	@Override
 	public List<Blog> find(Blog b) {
 		// TODO Auto-generated method stub
 		return null;
 	}
 
 	@Override
 	public Usuario findByBlogcodigo(String blogcodigo) {
 		// TODO Auto-generated method stub
 		return null;
 	}
 	
 	public List<Blog> listAll() throws Exception {
 				
 		
         return this.session.loadList(new Blog());		
 	}
 
 }
 


AppManager loadBeans():
Code:
 	public void loadBeans() {
 		
 		bean(Usuario.class, "Usuario")
 			.pk("usercodigo", DBTypes.SEQUENCE, "usercodigo")
 			.field("usernome", DBTypes.STRING)
 			.field("usersenha", DBTypes.STRING)
 			.field("useremail", DBTypes.STRING);
 				
 		bean(Blog.class, "Blog")
 		.pk("blogcodigo",DBTypes.SEQUENCE)
 		.field("blognome", DBTypes.STRING)
 		.field("usercodigo","usercodigo",DBTypes.INTEGER);
 



Queria mesmo tentar salvar o objeto pois vou precisar no decorrer da aplicação.
 
Forum Index -> Comentários Gerais
Go to:   
Powered by JForum 2.1.6 © JForum Team