//$Id$ package org.hibernate.test.annotations.join; import java.io.Serializable; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.SecondaryTable; import javax.persistence.SecondaryTables; import javax.persistence.UniqueConstraint; import org.hibernate.annotations.FetchMode; import org.hibernate.annotations.ForeignKey; import org.hibernate.annotations.Index; import org.hibernate.annotations.SQLInsert; import org.hibernate.annotations.Table; import org.hibernate.annotations.Tables; /** * @author Emmanuel Bernard */ @Entity @SecondaryTables({ @SecondaryTable(name = "`Cat nbr1`"), @SecondaryTable(name = "Cat2", uniqueConstraints = {@UniqueConstraint(columnNames = {"storyPart2"})}) }) @Tables( { @Table(appliesTo = "Cat", indexes = @Index(name = "secondname", columnNames = "secondName"), comment = "My cat table" ), @Table(appliesTo = "Cat2", foreignKey = @ForeignKey(name="FK_CAT2_CAT"), fetch = FetchMode.SELECT, sqlInsert=@SQLInsert(sql="insert into Cat2(storyPart2, id) values(upper(?), ?)") ) } ) public class Cat implements Serializable { private Integer id; private String name; private String secondName; private String storyPart1; private String storyPart2; @Id @GeneratedValue public Integer getId() { return id; } @Index(name = "nameindex") public String getName() { return name; } public void setId(Integer integer) { id = integer; } public void setName(String string) { name = string; } public String getSecondName() { return secondName; } public void setSecondName(String secondName) { this.secondName = secondName; } // Bug HHH-36 // @OneToMany(cascade=CascadeType.ALL, fetch=FetchType.EAGER) // @JoinColumn(name="CAT_ID", secondaryTable="ExtendedLife") // public Set<Life> getLifes() { // return lifes; // } // // public void setLifes(Set<Life> collection) { // lifes = collection; // } @Column(table = "`Cat nbr1`") @Index(name = "story1index") public String getStoryPart1() { return storyPart1; } @Column(table = "Cat2", nullable = false) public String getStoryPart2() { return storyPart2; } public void setStoryPart1(String string) { storyPart1 = string; } public void setStoryPart2(String string) { storyPart2 = string; } }