5

データベースに永続化されるシングルトンがあります。他の永続エンティティは、このシングルトンへの参照を持つ必要があります。Hibernate でどのように実現できますか?

シングルトンの単一の ID を偽造して、次のようにまだ機能していないもので終了しました。

@Entity
@Subselect("select '1' as ID")
class Singleton {
    @Id
    @Column(name="ID")
    private Long getId() { return 1l; }
    private void setId(Long id) { }
}

@Entity
@Table(name="ENT")
class MyEnt {
    // TODO: how to annotate so that table ENT doesn't need foreign key column 
   Singleton s;
}

問題は、シングルトンを参照するエンティティに外部キーを持つ列を持ちたくないということです-シングルトンは1つだけであり、そのIDは必要ないためです...

多分私は間違った方法で考えていますか?多分それは間違ったアーキテクチャの問題ですか?同様の問題を解決しましたか?

4

2 に答える 2

1

私はこれで終わりました:

@Entity
@Subselect("select '1' as ID, * from TABLE")
class Singleton {
    @Id
    @Column(name="ID")
    private Long getId() { return 1l; }
    private void setId(Long id) { }
    // ... other useful fields persisted in TABLE
}

@Entity
@Table(name="ENT")
class MyEnt implements Lifecycle {
   Singleton s;
   void onLoad(Session sess, Serializable id) {
      this.s = sess.get(Singleton.class, 1l);
   }
   // etc...
}
于 2012-10-22T22:48:45.563 に答える
0

オブジェクトSingletonが 1 つだけの場合、なぜそれを他のエンティティにマッピングする必要があるのですか?

Singleton一度ロードして に入れたいと思うかもしれませんapplication context。その場合、必要なときにいつでも再利用できます。

于 2012-10-17T15:30:30.243 に答える