فرض کنیم دو کلاس person و Address داریم که رابطه یک به چند (one to many) دارند. یعنی هر شخص می تواند چند آدرس داشته باشد. جداول این دو کلاس در مثالهای قبل بیان شده اند. انوتیشن این کلاسها به صورت زیر می باشد:
@Entity
@Table(name="PERSON" uniqueConstraints = {
@UniqueConstraint(columnNames = "ID"),
})
public class Person {
private Integer id = null;
/** * Gets id (primary key). */
@Id
@GeneratedValue(strategy=GenerationType. IDENTITY)
@Column(name="ID ")
@Column(name="FIRST_NAME" unique = true, nullable = false)
private String firstName;
@Column(name="LAST_NAME")
private String lastName;
@OneToMany(cascade=CascadeType.ALL)
@JoinColumn(name="PERSON_ID", nullable=false)
private Set<Address> addresses;
public Integer getId()
{ return id; }
public void setId(Integer id)
{ this.id = id; }
public String getFirstName()
{ return firstName; }
public void setFirstName(String firstName)
{ this.firstName = firstName; }
public String getLastName()
{ return lastName; }
public void setLastName(String lastName)
{ this.lastName = lastName; }
public Set<Address> getAddresses()
{ return addresses; }
public void setAddresses(Set<Address> addresses)
{ this.addresses = addresses; }
}
@Entity
@Table(name="ADDRESS" uniqueConstraints = { @UniqueConstraint(columnNames = "ID"), })
public class Address {
;
@Column(name="CITY")
private String city ;
@Column(name="STATE")
private String state;
@Column(name="ZIP_POSTAL")
private String zipPostal ;
@Column(name="ADDRESS")
private String address
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name="ID" unique = true, nullable = false)
private Integer id;
public String getAddress() { return address; }
@manyToOne
@JoinColumn(name="PERSON_ID", nullable=false)
private Integer person_id;
// getet and setter
}
- فرشته حقیقی 4 سال قبل پاسخ داد
- شما باید برای ارسال دیدگاه وارد شوید