Biri hazırda mappedBy açıklayabilecek olan var mı?
Hazırda yeni bir üyesiyim ve 1-Çok ve Çok-1 ilişkisi kullanmanız gerekir. Ben kendim nesneleri çift yönlü bir ilişki olduğunu, her iki yönden geçiş. mappedBy bu konuda gitmek için önerilen yöntemdir. Ancak, bunu anlayamıyordum. Biri bunu bana açıklayabilir
- bunu kullanmak için önerilen yol nedir ?
- ne amaçla çözüyor mu ?
Benim örnek için, burada ek açıklamalar ile benim sınıfları vardır:
Airline
SAHİBİ çokAirlineFlights
- Birçok
AirlineFlights
aittirBİRAirline
Havayolu:
@Entity
@Table(name="Airline")
public class Airline {
private Integer idAirline;
private String name;
private String code;
private String aliasName;
private Set<AirlineFlight> airlineFlights = new HashSet<AirlineFlight>(0);
public Airline(){}
public Airline(String name, String code, String aliasName, Set<AirlineFlight> flights) {
setName(name);
setCode(code);
setAliasName(aliasName);
setAirlineFlights(flights);
}
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name="IDAIRLINE", nullable=false)
public Integer getIdAirline() {
return idAirline;
}
private void setIdAirline(Integer idAirline) {
this.idAirline = idAirline;
}
@Column(name="NAME", nullable=false)
public String getName() {
return name;
}
public void setName(String name) {
this.name = DAOUtil.convertToDBString(name);
}
@Column(name="CODE", nullable=false, length=3)
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = DAOUtil.convertToDBString(code);
}
@Column(name="ALIAS", nullable=true)
public String getAliasName() {
return aliasName;
}
public void setAliasName(String aliasName) {
if(aliasName != null)
this.aliasName = DAOUtil.convertToDBString(aliasName);
}
@OneToMany(fetch=FetchType.LAZY, cascade = {CascadeType.ALL})
@JoinColumn(name="IDAIRLINE")
public Set<AirlineFlight> getAirlineFlights() {
return airlineFlights;
}
public void setAirlineFlights(Set<AirlineFlight> flights) {
this.airlineFlights = flights;
}
}
AirlineFlights:
@Entity
@Table(name="AirlineFlight")
public class AirlineFlight {
private Integer idAirlineFlight;
private Airline airline;
private String flightNumber;
public AirlineFlight(){}
public AirlineFlight(Airline airline, String flightNumber) {
setAirline(airline);
setFlightNumber(flightNumber);
}
@Id
@GeneratedValue(generator="identity")
@GenericGenerator(name="identity", strategy="identity")
@Column(name="IDAIRLINEFLIGHT", nullable=false)
public Integer getIdAirlineFlight() {
return idAirlineFlight;
}
private void setIdAirlineFlight(Integer idAirlineFlight) {
this.idAirlineFlight = idAirlineFlight;
}
@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(name="IDAIRLINE", nullable=false)
public Airline getAirline() {
return airline;
}
public void setAirline(Airline airline) {
this.airline = airline;
}
@Column(name="FLIGHTNUMBER", nullable=false)
public String getFlightNumber() {
return flightNumber;
}
public void setFlightNumber(String flightNumber) {
this.flightNumber = DAOUtil.convertToDBString(flightNumber);
}
}
DÜZENLEME:
Veritabanı şema:
AirlineFlights ForeignKey ve Havayolu yok idAirlineFlights gibi idAirline vardır. Bu, sahibi olarak AirlineFlights/varlık tespit yapar ?
Teorik olarak, havayolu airlineFlights sahibi olmak istiyorum.
CEVAP
MappedBy sinyaller ilişkilerin anahtarı diğer tarafında hazırda.
Bu 2 tabloları birbirine bağlamak olsa da, sadece o tablo 1 diğeri yabancı anahtar kısıtlaması anlamına gelir. MappedBy hala diğer tablo için tablo kısıtlaması içermeyen bağlantı sağlar.
Biri UİViewController bir doğum süreci...
Olan asal sayıları bulmak için en hızl...
Durum bilgisi olan ve olmayan Kurumsal...
Uyarı " bastırmak;Kategori de İlkö...
Büyük tamsayı olan JSON transfer: 1200...