我有一个要保存在数据库中的单例。其他持久实体应该引用这个单例。如何用 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;
}
问题是我不想在引用单例的实体中有一个带有外键的列 - 因为单例只有一个,我们不需要它的 ID...
也许我的想法不对?也许这是错误的架构问题?您是否解决了类似问题?
最佳答案
我以此结束:
@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...
}
关于java - hibernate/持久化和单例模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12937775/