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