0

次のような(簡略化された)テーブル構造があります。

顧客テーブル:

id       name
-------------------
 1       customer1

別名テーブル:

customer_id       alias
-------------------------------
 1                 customer one
 1                 customer uno

次のクエリを実行すると、顧客ごとのエイリアスのリストを簡単に取得できます。

select * from customer_alias where customer_id=1;

休止状態でこのクエリを使用して、 type のリストを作成したいと思いますString。私は@Formula次のように使用してみました:

@Entity
@Table(name = "customer")
public class Customer {
      @Id
      @Column(name = "id")
      @GeneratedValue(strategy= GenerationType.AUTO)
      private Long id;

      @Column(name="name")
      private String name;

      @Formula("(select alias from customer_alias where customer_id = id)")
      private List<String> aliases;

      // Getters, setters, etc...
}

うまくいかず、次の例外が発生しました。

 Could not determine type for: java.util.List, at table: customer, for columns: [org.hibernate.mapping.Formula( (select alias from customer_alias where customer_id = id) )]

これを達成する方法はありますか?もちろん一緒である必要はありません@Formula。どんな合理的な方法でも素晴らしいでしょう。

これが私の例のSQLFiddleです

4

2 に答える 2