外部キーを持たない2つのテーブル間で結合を行うことはできますか?テーブルに外部キーを持たないHQL結合
編集:いいえ、私はこれが可能であると確信していましたが、まだそれをどうやって行うのか完全にはわかりません。
クラス
public class Booking
{
public virtual int Id { get; set; }
public virtual Int32 bookingID { get; set; }
public virtual Int32 bookingAdminID { get; set;
}
public class BookingLocation
{
public virtual int Id { get; set; }
public virtual Int32 bookingID { get; set; }
public virtual Int32 locationID { get; set; }
}
マッピング
public BookingMap()
{
Table("Bookings");
Id(x => x.Id).Column("ID");
Map(x => x.bookingID).Column("BookingID");
Map(x => x.bookingAdminID).Column("BookingAdminID");
}
public class BookingLocation
{
public virtual int Id { get; set; }
public virtual Int32 bookingID { get; set; }
public virtual Int32 locationID { get; set; }
}
私は、内側が上記の両方のテーブルのbookingIDに参加し、簡単な操作を行う必要があります。どうすればいい?
私が試してみました:
var hql = "select b from Booking as b inner join BookingLocation as bl on b.bookingID = bl.bookingID";
var bookings = session.CreateQuery(hql).List<object[]>();
をしかし、私はエラーを取得:
Semantic exception was unhandled by user code Path expected for join!
[select b from Booking as b inner join BookingLocation as bl on b.bookingID = bl.bookingID]
私は簡単にマッピングにおけるこれら2つのテーブル間の関係を構築することはできませんので、私はこのアプローチを取っています。あなたは結合をするために関係を持っている必要がありますか?
あなたの答えをありがとう、私はあなたのアドバイスを使用しようとしましたが、私は構文を把握することができませんでした。オリジナルの投稿を編集しました。サンプルコードを書き直してもよろしいですか? – iKode