如何在 Hibernate HSQL 数据库中创建视图

问题描述

在我们的生产数据库中,我们有一个视图,其中包含来自第二个数据库的一些数据。在应用程序中,我需要一个实体来表示此视图的数据。为此,我创建了一个实体类并使用@Immutable 和@Subselect 对其进行注释。虽然这对于连接到生产数据库很有效,但我的集成测试遇到了问题。

我们使用 hypersonic (HsqlDB) 内存数据库来运行测试。当应用程序被部署时,hibernate 应该根据我的实体的数据模型创建一个数据库。但是,当我去运行测试时,我收到错误消息,说代表我的视图的表不存在。查看日志,我可以确认它永远不会为该类创建表。

我需要做什么才能让休眠状态为这样的实体创建表?是否有我可以使用的设置,还是我必须自己手动创建和删除表?

一些代码示例:

@Entity(name = "ColorBreak")
@Table(name = "insight_color_breaks")
@Audited
@NamedQueries({
        @NamedQuery(name = "ColorBreak.findAll",query = "select c from ColorBreak c",hints = {
                @QueryHint(name = "org.hibernate.cacheable",value = "true") }),@NamedQuery(name = "ColorBreak.findAllForFrame",query = "select c from ColorBreak c where c.color.frame.id=:frameId") })
@Immutable
@Subselect("select * from insight_color_breaks;")
public class ColorBreak extends Entity
{

    @Id
    @XmlElement
    @DocumentId
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(columnDeFinition = "int")
    protected BigInteger id;

    @ManyToOne
    @JoinColumn(name = "color_id",columnDeFinition = "int")
    protected Color color;

    @Column(name = "current_state")
    protected Integer currentState;

}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)