Giriş
@JoinColumn anotasyonuna sahip nesne child nesne olarak düşünülebilir
Örnek
Şöyle yaparız. Address tablosundaki id sütünü primary key, Employee tablosundaki addrs_id sütünü da Address tablosuna foreign key olarak tanımlanır.
@Entity
@Data
public class Address {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
...
}
@Entity
@Data
public class Employee {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
...
@OneToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "addrs_id", referencedColumnName = "id")
private Address address;
}
Şöyle tanımlarız.
@Entity
@Table(name = Membership_Profile)
class MembershipProfile {
Long moduleMembershipId;
String displayName;
// Other properties if needed
}
ve@Entity
class PokerProfile {
@OneToOne(fetch=FetchType.LAZY)
@JoinColumn(name = "membershipId")
MembershipProfile membershipProfile;
...
}
PokerProfile nesnesi JoinColumn ile hangi membership profile nesnesini ile ilişkili olduğunu bilir.Örnek
ForeignKeyvermek için şöyle yaparız.
@Entity
public class MediaAnalysis {
@OneToOne
@JoinColumn(
name = "MED_ID",
nullable = false,
foreignKey = @ForeignKey(name="MEA_MED_FK")
)
private Media media;
...
}
Hiç yorum yok:
Yorum Gönder