私は2つのテーブルを持っていprice_feed
ますprice_feed_type
. 価格フィードには、価格フィードのさまざまな実装のデータが含まれます。
現在、これは通常<discriminator>
、テーブル内の識別子フィールドを使用して、タグを介して行われprice_feed
ます。ただし、システムのコンテキストでは、このフィールドがprice_feed_type
テーブルにある方が望ましいでしょう。<discriminator formula="..."/>
私はその方法に出くわし、これを使ってみました。
formula
1 つの解決策は次のとおりです (これが属性に入力されていると仮定します)。
(SELECT implementing_class FROM price_feed_type INNER JOIN price_feed ON price_feed.price_feed_type_id = price_feed_type.price_feed_type_id")
別の解決策は次のとおりですpriceFeedID
。price_feed.price_feed_type_id
(SELECT implementing_class FROM price_feed_type WHERE price_feed_type.price_feed_type_id = price_feed.price_feed_type)
どちらでも次のエラーが発生します。
org.postgresql.util.PSQLException: ERROR: column timedprice3_.implementing_class does not exist
追加のメモ、括弧なしでは、エラーが発生します:
org.postgresql.util.PSQLException: ERROR: syntax error at or near "SELECT"
これを修正する方法についてのアイデアはありますか?
編集:
これまでに見つけたものを追加するには:
どちらかを使用してSELECT *
、 を実行してSELECT implementing_class
から外部で実行すると、別のエラーが発生します。完全なコード:
(SELECT implementing_class FROM (SELECT * FROM price_feed_type INNER JOIN price_feed ON price_feed.price_feed_type_id = price_feed_type.price_feed_type_id) AS foo)
エラーは次のとおりです。
org.postgresql.util.PSQLException: ERROR: syntax error at or near "."