SORU
2 ŞUBAT 2012, PERŞEMBE


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:

  • AirlineSAHİBİ çokAirlineFlights
  • BirçokAirlineFlights 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.

enter image description here

CEVAP
2 ŞUBAT 2012, PERŞEMBE


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.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • boburnham

    boburnham

    11 Temmuz 2006
  • EvilControllers

    EvilControll

    20 Ocak 2008
  • footiecyclo

    footiecyclo

    26 EYLÜL 2009