- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
Thera是oracle View vendor_view和表vendors(为简单起见,vendors表仅包含带有名称id的PK)
create view vendor_view as
select id as vid, 'YES' as active
from vendors;
对应实体
@Entity
@Table(name = "vendors")
@SecondaryTable(name = "vendor_view", pkJoinColumns = {@PrimaryKeyJoinColumn(name = "vid", referencedColumnName = "id")})
public class Vendor {
@Id
private Long id;
@Column(table = "vendor_view", name = "vid", insertable = false, updatable = false)
private Long vid;
@Column(table = "vendor_view", name = "active", insertable = false, updatable = false)
private String active;
getter and setter....
}
当我尝试保留新的供应商实体时,会遇到问题:
org.springframework.dao.InvalidDataAccessResourceUsageException: could not prepare statement; SQL [insert into vendor_view (vid) values (?)]; nested exception is org.hibernate.exception.SQLGrammarException: could not prepare statement
at org.springframework.orm.jpa.vendor.HibernateJpaDialect.convertHibernateAccessException(HibernateJpaDialect.java:238)
.....
Caused by: org.hsqldb.HsqlException: INSERT, UPDATE, DELETE or TRUNCATE not permitted for table or view
at org.hsqldb.error.Error.error(Unknown Source)
JPA 实现是 Hibirnate。
问题是为什么 Hibirnate 为标记为 insertable = false, updatable = false 的字段生成 insert 查询?
最佳答案
因为 hibernate 不知道您尝试插入的表是表还是 View ,除非它与数据库交互。所以这是运行时异常,只有当Java程序与数据库交互时才能检查。
这类似于即使表不存在也会进行查询,但在运行时它会抛出异常。
关于java - JPA 可通过 View 和 secondaryTable 进行插入和更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34208122/
我有两个在不同模式中具有相同名称的表,并且我正在尝试使用这些表和@SecondaryTable 创建一个实体。它给了我以下错误 InFlightMetadataCollector$DuplicateS
我想映射 one to many 中的两个实体时尚。 A->[B, B] 我想添加到 join table更多领域。 Pojos看起来像: @Entity @Table(name = "A", sch
我有两个表: 语言 CREATE TABLE language ( id BIGSERIAL, name TEXT NOT NULL UNIQUE, PRIMARY KEY (id)
我有一个实体。我想有选择地从辅助表加载有关实体的其他信息。我有以下映射。 @Entity @Table( name = "program", schema = "myschema" ) @Second
在我的场景中最好的解决方案是什么? 我有一个滞后数据库,想通过使用单个 hibernate 实体来访问数据。我希望 Java 部分尽可能简单。 我的数据库由三个表组成: 表 1(id,Att1,A
我知道,@SecondaryTable问题已发布多次,因此,如果有相同的问题(我还没有找到),请给我链接或建议。 我的数据库中有两个表(firstTable 和 secondTable),两个 POJ
我正在修改旧数据库,并且必须将一个表分成两个表。有很多代码引用我的实体类,因此我想使用 @SecondaryTable 来避免弄乱所有项目。 假设我有一个如下所示的 Employee 表: +----
我有一个 @ManyToMany 类型的关系与 @JoinTable协会。 问题是关系中的实体有自己的表,但有几个属性应该放在关联表中。 A_C我觉得 table 很好。 添加 @SecondaryT
我有一个非常简单的类层次结构,如下所示,每个子类都有一个 @DiscriminatorValue 枚举类型,效果很好。 抽象类: AbstractNode(映射到 Node 表的抽象类) 子类: Fi
我的模型中有一对多关系,其中子实体存储在两个表中。 @Entity @Table(name = "child1") @SecondaryTable(name = "child2", pkJoinCol
我正在使用带注释的 Hibernate 版本 3.3.2.GA。 我在两个类之间继承,前者: @Entity @Table(name = "SUPER_CLASS") @Inheritance(str
在我的数据库中,我有两个表,如下所示: CREATE TABLE IF NOT EXISTS `Lokal` ( `idLokal` int(11) NOT NULL AUTO_INCREMENT
我的架构的缩写版本: utility_company id int not null -- PK name varchar(255) not null utility_settings utility
为我的实习工作开发 JPA 2.0 合规性工具包。该套件的一部分用于覆盖角落案例。 @MappedSuperclass 没有原始表,因为它不是实体。JSR-317 声明了这个有趣的位: A class
我有两个表: part { int id; --> primary key, auto generated varchar poNo; varchar partNo;
Thera是oracle View vendor_view和表vendors(为简单起见,vendors表仅包含带有名称id的PK) create view vendor_view as se
我已经使用 SINGLE_TABLE with SecondaryTables 实现了继承层次结构. 这可以正常工作,但是当我的辅助表的字段为空(= Oracle 中的 null)时,对实体的下一次更
我有一个包含这些表的实体: @Entity @Table(name = "PM_ADJ_MULTI_YR_DETAILS") @SecondaryTables( { @SecondaryTable(n
我的代码如下所示: @Data @Accessors(chain = true, fluent = true) @Entity @Table(name = "T_FILE_META", indexes
我有一个 JPA 实体类,它使用 @SecondaryTable 关系来检索其一些字段。有一些针对该实体的查询只需要返回几个字段,所有字段都来自主表。 我希望使用 Spring Data JPA Pr
我是一名优秀的程序员,十分优秀!