@JoinColumn
ikisi de benzer şeyler yapmak görünür bir Entity
Bildiğim kadarıyla söyleyebilirim Entity
A ve Entity
B. arasındaki tüm ilişkilerin arasındaki ilişkiyi listeler başka Entity
@JoinTable
oysa bir yabancı anahtar verir. Ne zaman birini kullanmalıyım?@JoinColumn'u veya @JoinTable'ı Ne Zaman Kullanmalıyım?
cevap
Diyelim ki bir @ManyToOne
dernek hedef tablo yabancı anahtarı tanımlayacak bir varlık B
@JoinColumn ot olan bir varlık A
(örneğin B_ID
) hedef Varlık tablosunu (örn B
) kullanırken var diyelim.
@Entity
public class A {
private Long id;
@ManyToOne
@JoinColumn(name="B_ID")
private B b;
}
@JoinTableA
ve B
arasındaki ilişkiyi tutmak için ayrı bir tablo kullanacaktır. ayrı bir tablo var çünkü
@Entity
public class A {
private Long id;
@ManyToOne
@JoinTable(
name = "A_B",
joinColumns = @JoinColumn(name = "B_ID"),
inverseJoinColumns = @JoinColumn(name = "A_ID")
)
private B b;
}
bu kez de A
de B
, herhangi bir yabancı anahtar içeren (örneğin A_B
) A
ve B
arasındaki ilişkiyi tutmak için.
@JoTablo, her tablonun kimliğini ayrı bir tabloya kaydeder; @JoinColumn ise yeni bir sütunda başka bir tablonun kimliğini depolar.
@JoinTablo: Bu varsayılan türdür. Daha normalize edilmiş bir veritabanına ihtiyacınız olduğunda bunu kullanın. yani. fazlalığı azaltmak için.
@JoinColumn: Daha fazla performans için ekstra tabloya ihtiyaç duymadığından bunu kullanın.
- 1. django - media_root veya static_root'u ne zaman kullanmalıyım?
- 2. _aligned_malloc() işlevini ne zaman kullanmalıyım?
- 3. std :: bind ne zaman kullanmalıyım?
- 4. ImageButton veya Button'ı ne kullanmalıyım?
- 5. Düz PropertyMetadata üzerinde ne zaman FrameworkPropertyMetadata veya UIPropertyMetadata kullanmalıyım?
- 6. JavaScript'te MVC framework'ü ne zaman kullanmalıyım?
- 7. Kalıtım yerine şablonları ne zaman kullanmalıyım?
- 8. Linux'ta dosya açtığımda O_CLOEXEC'i ne zaman kullanmalıyım?
- 9. es6 Ok İşlevlerinde ne zaman 'return' kullanmalıyım?
- 10. WCF hizmetinin içinde OperationContextScope'u ne zaman kullanmalıyım?
- 11. PHP: memory_get_peak_usage (false), ne zaman kullanmalıyım?
- 12. Ne zaman Response.Redirect kullanmalıyım (url, true)?
- 13. Genel/özel/statik yöntemleri ne zaman kullanmalıyım?
- 14. SPATIAL INDEX nedir ve ne zaman kullanmalıyım?
- 15. Django'da user.get_profile öğesini ne zaman kullanmalıyım?
- 16. RequestStack ne zaman getCurrentRequest yerine getMasterRequest kullanmalıyım?
- 17. DateTime vs date ne zaman, ruby / raylarda zaman alanlarını kullanmalıyım?
- 18. Hangisini kullanmalıyım? decimal.Add() veya "+"
- 19. Oturum yerine ne kullanmalıyım?
- 20. Açısal 2 - Şablonu yüklemek için @View ne zaman kullanmalıyım?
- 21. Scala @ inline açıklamasını ne zaman kullanmalıyım (ve yapmamalıyım)?
- 22. Objective-C yöntem adlarında "ve" ne zaman kullanmalıyım?
- 23. sscanf yerine ne kullanmalıyım?
- 24. com.google.appengine.repackaged * yerine ne kullanmalıyım?
- 25. Jira Agile'de bir "Story" kullanmalıyım ve ne zaman bir "Geliştirme" kullanmalıyım?
- 26. Perl'de printf yerine ne kullanmalıyım?
- 27. Django modelleri: öznitelikler için @property dekolayıcısını ne zaman kullanmalıyım?
- 28. DataContract yerine İleti Sözleşmelerini ne zaman kullanmalıyım ve neden?
- 29. Ne zaman kullanmalıyım? Rm, git rm --cached, git add
- 30. std :: async'i eşitleme ile ilke olarak ne zaman kullanmalıyım?
Böylece bir JoinTable N-N ilişkisidir? – julestruong
Veritabanı terminolojisinde, çoktan çoğa bir ilişki var. Bu durumda, bir FK bir birleştirme tablosuyla bire-çok ilişkilendirmeye dönüştürmek için benzersiz bir kısıtlamaya sahip olacaktır. –