微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决如何在 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 举报,一经查实,本站将立刻删除。