JPA/Hibernate ürününü kullanıyorum. Kompozit anahtarlarla iki tabloya katılmanın ve gerçek bir veritabanı ilişkisinin olmamasının en iyi yolunu bulmaya çalışıyorum. Hazırda Bekleme/JPA Kompozit Anahtarlı İki Tabloya Katıl (Dış İlişkiler Yok)
@Embeddable
public class StepPK implements Serializable{
@Column(name = "step_id")
protected String stepId;
@Column(name = "packet_id")
protected String packetId;
...
}
@Entity
@Table(name = "step_def")
@IdClass(StepPK.class)
public class InprocessPacketStep implements Serializable{
@Id
private String stepId;
@Id
private String packetId;
}
@Embeddable
public class StepDetailPK implements Serializable {
@Column(name = "step_id")
protected String stepId;
@Column(name = "packet_id")
protected String packetId;
@Column(name="user_id")
protected String userId;
@Column(name="parallel_step_id")
protected String parallelId;
...
}
@Entity
@Table(name = "step_detail")
@IdClass(StepDetailPK.class)
public class InprocessPacketStepDetail implements Serializable {
@Id
private String stepId;
@Id
private String packetId;
@Id
private String parallelId;
@Id
private String userId;
}
Ne var bugüne kadar bireysel tabloları üzerinden bilgi çekerek zaman harika çalışıyor, ancak ben step_id kendilerine katılmaya bazı yol gerekir
. Gerçekten atanmış bir ilişki olmadığı için OneToMany ve JoinColumns yapmak işe yaramıyor.ManyToMany kullanmayı denedim ve derleme sırasında patlamıyorum, ancak testlerimin denetlenmesi üzerine SQLGrammar Özel Durumuna neden oluyor.
Tek düşüncem, bunları bir sorgu aracılığıyla el ile birleştirmek, ancak entityManager.createQuery("select InprocessPacketStep step join inprocessPacketStepDetail d on d.stepId = step.stepId")
çalıştırmak, bir çalışma zamanı hatasına neden oluyor.
Herhangi bir öneri takdir edilecektir. Başarı olmadan bulduğum farklı şeyleri denemek için biraz uğraştım.
Oh, ima üstteki ge linki temel tablo açıklamasıdır – Jerron
Karşılaşılan hatalar hakkında daha fazla bilgi lütfen. Ayrıca, hangi çıktıyı almaya çalışıyorsunuz? –
neden ek ilişkisel tablo kullanamazsınız? Bu varlıklar arasındaki ilişki nedir? – Cootri