私は、外部キーなどでいくつかのテーブルを生成するために休止状態にしたいと思っています。したがって、このクエリは注釈を経由して休止状態によって生成されなければならないHibernate ForeignKeyマッピングの注釈
create table RealtimeCost(id INTEGER not null primary key Autoincrement,
mnemonic varchar(50)not null references Exchange(mnemonic),
sid int not null references License(sid),
price numeric(10,2) not null)
:病気あなたに私が生成する冬眠するクエリの例を与えます。これに対応するクラスがある:あなたが私を見ることができるように
@Entity
@Table
public class Exchange {
@Id
@Column(name="mnemonic")
private String exchange;
@Column
private String description;
:RealtimeCost
でmnemonic
は(RealtimeCost
の各ニーモニックはExchange
で正確に1の値を持つ)にマッピングされるべきもののため
@Entity
@Table
public class RealtimeCost {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
@MapsId("mnemonic")
@JoinColumn(referencedColumnName="sid")
private String mnemonic;
@MapsId("sid")
@JoinColumn(referencedColumnName="sid")
private Integer sid;
@Column
private Double price;
例ドキュメントの助けを借りて少し試しましたが、私は外部キーを休止状態で生成させることができませんでした。誰かが私にこのクラスの必要な注釈と値を教えてもらえると本当に親切なので、他のクラスについても自分自身でそれを行うことができます。また、マッピングが機能するように、Exchange
クラス内の何かを変更する必要があるかどうか教えてください。事前に感謝します
これは、 'ViewType'型のオブジェクトを' ViewType'クラスのidだけにマップしますか? – Aelop
ビュータイプのIDにどのように注釈を付けたか教えていただけますか? – Aelop
遅れて申し訳ありません。はい、エンティティをID参照としてマッピングします。 FetchTypeを使用すると、ロードする方法をさらに指定できます。 (レイジーまたはエイジャー) ViewTypeにはこの '@AttributeOverride({@AttributeOverride(name =" id "、column = @Column(name =" VIEWTYPE_ID ")) }})アノテーションが付けられていますが、このアノテーションはクラス定義。エンティティを宣言する別の戦略を使用しているからです。しかし、id列には@Idというアノテーションが付けられています。 これは、fetchtype '@ javax.persistence.Basic(fetch = javax.persistence.FetchType.EAGER、optional = false)の例の注釈です。 ' – Nico