Hibernate + java.util.Queue

0 respostas
ricardogalegao

Pessoal, tô com uma bronca… seguinte… tenho um atributo do tipo java.util.Queue que tem um mapeamento @ManyToMany com outra classe, Client.

Classe OmetzUser

@javax.persistence.Entity
public class OmetzUser extends DatabaseRecord implements User {

	@NaturalId
	@Column(length = 30)
	private String username;

	@Column(length = 30)
	private String firstName;

	@Column(length = 30)
	private String lastName;

	.
	.
	.

	@ManyToMany(targetEntity = Client.class, cascade = { CascadeType.PERSIST,
			CascadeType.MERGE })
	@JoinTable(name = "userClients", joinColumns = @JoinColumn(name = "user_id"), inverseJoinColumns = @JoinColumn(name = "client_id"))
	private Queue<Client> mostRecentClients;
	
	.
	.
	.

Classe Client:

@Entity
public class Client extends DatabaseRecord {

	@Transient
	public static final String ADULT = "A";

	@Transient
	public static final String CHILD = "C";

	@Transient
	public static final String PRINCIPAL = "P";


	@NaturalId
	@Column(length = 15)
	private String code;
	
	.
	.
	.


	@ManyToMany(cascade = { CascadeType.PERSIST, CascadeType.MERGE }, mappedBy = "mostRecentClients", targetEntity = OmetzUser.class)
	private LinkedList<OmetzUser> mostRecentClients;
	
	.
	.
	.

Quando eu levanto o servidor, me aparece essa mensagem de erro:

Caused by: org.hibernate.AnnotationException: Illegal attempt to map a non collection as a @OneToMany, @ManyToMany or @CollectionOfElements: com.nashen.ometz.core.model.Client.mostRecentClients

at org.hibernate.cfg.annotations.CollectionBinder.getCollectionBinder(CollectionBinder.java:264)

at org.hibernate.cfg.AnnotationBinder.processElementAnnotations(AnnotationBinder.java:1455)

at org.hibernate.cfg.AnnotationBinder.bindClass(AnnotationBinder.java:754)

at org.hibernate.cfg.AnnotationConfiguration.processArtifactsOfType(AnnotationConfiguration.java:534)

at org.hibernate.cfg.AnnotationConfiguration.secondPassCompile(AnnotationConfiguration.java:286)

at org.hibernate.cfg.Configuration.buildMappings(Configuration.java:1121)

at org.springframework.orm.hibernate3.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:673)

at org.springframework.orm.hibernate3.AbstractSessionFactoryBean.afterPropertiesSet(AbstractSessionFactoryBean.java:211)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1368)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1334)

 91 more

É como se a classe java.util.Queue (public interface Queue<E> extends Collection<E>) não extendesse a Collection.

Alguém pode me dar uma luz?? Agradeço desde já.

Ricardo Lima

Criado 8 de dezembro de 2008
Respostas 0
Participantes 1