我正在尝试使用JPA插入Oracle视图。JPA生成以下SQL语句-
insert into home_view (id, email, first_name, last_name) values (default, ?, ?, ?)
当它执行查询时,Oracle DB抛出以下错误-
ORA-32575: Explicit column default is not supported for modifying views
根据我的理解,上面的查询不能与视图一起工作,因为如果视图的基础表列是IDENTITY列,我们就不能插入视图。
我们在Hibernate中是否有任何选项可以帮助在将对象保存到DB时排除标识列?
注意-我不想使用原始SQL语句来插入我的对象。
我使用了GenerationType.SEQUENCE策略,它工作得很好,但唯一的问题是我必须提供序列名。我不想在Java实体中提供硬编码的序列名。
谢谢你的帮忙!
1条答案
按热度按时间zfycwa2u1#
use:
UPDATE:对于Oracle上的 * 视图 *,请使用:
@Id @Generated
(即将发布),或SelectGenerator
,在Hibernate 5或6中。但是请注意,您必须标识实体的
@NaturalId
,否则Hibernate无法定位刚刚插入的行以检索生成的id。在您的情况下,我想自然ID是电子邮件地址。