我在数据库中有一个表和一个视图(Postgres)。它们之间的业务关系是一对一的。但是,我无法修改数据库以创建任何约束。
表格如下:
CREATE TABLE invoice
(
invoiceid text NOT NULL,
date_created timestamp without time zone NOT NULL DEFAULT now(),
CONSTRAINT invoice_pkey PRIMARY KEY (invoiceid)
)
WITH (
OIDS=FALSE
);
并且视图类似于:
CREATE OR REPLACE VIEW invoice_view AS
SELECT invoice.invoiceid, invoice.date_created,
.......
FROM invoice;
我可以在Hibernate中创建自定义的一对一关系,这样我可以使用像myInvoice.getInvoiceView();
这样的东西吗?如果有可能,该怎么办?
我正在使用XML配置。如果有人可以使用注释为我提供答案,那也会很棒。
提前致谢。
答案 0 :(得分:1)
是的,Hibernate并不关心实体是否映射到表或视图:
@Entity
@Table(name = "invoice")
public class Invoice {
@Id
@Column(name = "invoiceid")
private String id;
@OneToOne
@PrimaryKeyJoinColumn
private InvoiceView invoiceView;
}
@Entity
@Table(name = "invoice_view")
public class InvoiceView {
@Id
@Column(name = "invoiceid")
private String id;
}