//$Id$ package org.hibernate.test.annotations.identifiercollection; import java.util.ArrayList; import java.util.Collection; import javax.persistence.CascadeType; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.JoinTable; import javax.persistence.ManyToMany; import javax.persistence.TableGenerator; import org.hibernate.annotations.CollectionId; import org.hibernate.annotations.Type; /** * @author Emmanuel Bernard */ @Entity @TableGenerator(name="ids_generator", table="IDS") public class Passport { @Id @GeneratedValue @Column(name="passport_id") private Long id; private String name; @ManyToMany(cascade = CascadeType.ALL) @JoinTable(name="PASSPORT_STAMP") @CollectionId(columns = @Column(name="COLLECTION_ID"), type=@Type(type="long"), generator = "generator") @TableGenerator(name="generator", table="IDSTAMP") private Collection<Stamp> stamps = new ArrayList(); @ManyToMany(cascade = CascadeType.ALL) @JoinTable(name="PASSPORT_VISASTAMP") @CollectionId(columns = @Column(name="COLLECTION_ID"), type=@Type(type="long"), generator = "ids_generator") //TODO test identity generator private Collection<Stamp> visaStamp = new ArrayList(); public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Collection<Stamp> getStamps() { return stamps; } public void setStamps(Collection<Stamp> stamps) { this.stamps = stamps; } public Collection<Stamp> getVisaStamp() { return visaStamp; } public void setVisaStamp(Collection<Stamp> visaStamp) { this.visaStamp = visaStamp; } }