我在数据库(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配置。如果有人可以使用注释为我提供答案,那也很好。
提前致谢。
最佳答案
是的,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;
}