JPA...OneTOMany...com erro ..Help..The attribute [centros] should be of type Vector (or a type that

0 respostas
P

Não entendi por que da esse erro ???

qdo tento fazer onetomany…

help

to usando java 1.5…

[TopLink Info]: 2008.11.28 01:21:24.388--ServerSession(15290002)--TopLink, version: Oracle TopLink Essentials - 2006.8 (Build 060908)
[TopLink Info]: 2008.11.28 01:21:26.259--ServerSession(15290002)--file:/C:/workspace/TesteJPA/build/classes-exemploJPA login successful
Erro: 
Exception Description: The attribute [centros] should be of type Vector (or a type that implements Map or Collection, if using Java 2).
Mapping: oracle.toplink.essentials.mappings.OneToManyMapping[centros]
Descriptor: RelationalDescriptor(br.com.exemplojpa.modelo.Universidade --> [DatabaseTable(Universidade)])
Final...



--

public static void main(String[] args) {
		// TODO Auto-generated method stub
        try{
	

			UniversidadeDAO dao = new UniversidadeDAO();
			
			Universidade univ = new Universidade();
			univ.setNome("Universidade Federal do Rio Grande do Norte");
			
			Centro centro1 = new Centro();
			centro1.setNome("Centro de Tecnologia");
			centro1.setUniversidade(univ);
			Centro centro2 = new Centro();
			centro2.setNome("Centro de Humanas");
			centro2.setUniversidade(univ);
			
			
			univ.setCentros(new HashSet<Centro>());
			univ.getCentros().add(centro1);
			univ.getCentros().add(centro2);
			
			dao.inserirUniversidade(univ);
		
        }catch(Exception e){
            System.out.println("Erro..."+e);
        }finally{
        	System.out.println("Final...");
        }
	}

}
---
public class UniversidadeDAO {

	private EntityManagerFactory factory = null;

	private EntityManager manager = null;

	public UniversidadeDAO() {

		factory = Persistence.createEntityManagerFactory("exemploJPA");
		manager = factory.createEntityManager();

	}

	/**
	 * Inserindo um universidade
	 * 
	 * @param universidade
	 */
	public void inserirUniversidade(Universidade universidade) {

		EntityTransaction transaction = manager.getTransaction();

		try {
			transaction.begin();

			manager.persist(universidade);
			transaction.commit();
            System.out.println("Inclusão OK...");
		} catch (Exception e) {
			transaction.rollback();

			System.err.println("Erro: " + e.getMessage());

		} finally {
			manager.close();
		}

	}

	/**
	 * Pesquisar um universidade
	 * 
	 * @param universidade
	 */
	public Universidade pesquisarUniversidade(Integer id, Universidade universidade) {
		EntityTransaction transaction = manager.getTransaction();

		Universidade retorno = null;

		try {

			
			transaction.begin();

			retorno = (Universidade) manager.find(Universidade.class, id);

		} catch (Exception e) {
			transaction.rollback();

			System.err.println("Erro: " + e.getMessage());
		} finally {
			manager.close();
		}

		return retorno;

	}

}

--
---

@Entity @Table(name = "Universidade")
public class Universidade {
    @Id
    @GeneratedValue(strategy=GenerationType.AUTO)
    @Column(name="id_universidade")
	private int id;
	private String nome;
	
	

	//@OneToMany(mappedBy="universidade",fetch=FetchType.EAGER,cascade=CascadeType.ALL)
	@OneToMany(mappedBy="universidade",fetch=FetchType.EAGER, cascade =javax.persistence.CascadeType.ALL)
	//@Cascade(CascadeType.PERSIST)
	@JoinColumn(name="id_universidade")
	private Collection<Centro> centros;


	public int getId() {
		return id;
	}


	public void setId(int id) {
		this.id = id;
	}


	public String getNome() {
		return nome;
---


	@Id @GeneratedValue(strategy = GenerationType.AUTO)
	@Column(name="id_centro")
	private int id;
	@Column
	private String nome;
	
	@ManyToOne(fetch = FetchType.EAGER)
	//@PrimaryKeyJoinColumn
	@JoinColumn(name="id_universidade")
	//@Fetch(FetchMode.JOIN)
	//@Cascade(CascadeType.PERSIST)
	//@ForeignKey(name="FKCentro")
	private Universidade universidade;
	
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getNome() {
		return nome;
	}
	public void setNome(String nome) {
		this.nome = nome;
	}
	public Universidade getUniversidade() {
		return universidade;
	}
	public void setUniversidade(Universidade universidade) {
		this.universidade = universidade;
--
Criado 28 de novembro de 2008
Respostas 0
Participantes 1