java - JPA HSQL 不从扩展类中获取字段

标签 java hibernate jpa hsqldb

我正在将以下数据插入到 HSQL 中:

INSERT INTO Consumer(id,ConsumerId,CREATEDBY,CREATEDAT,FK_Service,ConsumerType) VALUES(300,'adsgvcg-cvvce-hvchwec','sm',CURRENT_TIMESTAMP,1,'INTERNAL');

我有以下从表中读取的类:

Entity(name = "Consumer")
@Table(name = "Consumer")
public class Consumer extends Base {

    @Id
    @GeneratedValue(strategy = GenerationType.SEQUENCE)
    @Column(name = "ID")
    private long id;

     @Basic(optional = false)
     @Column(name = "ConsumerId", nullable = false)
     private String ConsumerId;

    @Basic(optional = false)
    @Column(name = "ConsumerType", nullable = false)
    private String ConsumerType;

    @Basic//(optional = false)
    @Column(name = "FK_Service", nullable = true)
    private String service;

//Getter Setters etc

基类如下所示:

public class Base implements Serializable{

    @Basic
    @Column(name = "MODIFIEDBY", nullable = true)
    private String ModifiedBy;

    @Basic
    @Column(name = "MODIFIEDAT", nullable = true)
    private Timestamp ModifiedAt;

    @Basic
    @Column(name = "CREATEDBY", nullable = true)
    private String CreatedBy;

    @Basic
    @Column(name = "CREATEDAT", nullable = true)
    private Timestamp CreatedAt;

//Getter Setters etc

当我运行代码时,出现以下异常:

2015-07-25 22:21:12,875 ERROR [main] hbm2ddl.SchemaExport.? (?:?) - HHH000388: Unsuccessful: INSERT INTO Consumer(id,ConsumerId,CREATEDBY,CREATEDAT,FK_Service,ConsumerType) VALUES(300,'adsgvcg-cvvce-hvchwec','smenon2',CURRENT_TIMESTAMP,1,'INTERNAL')
2015-07-25 22:21:12,875 ERROR [main] hbm2ddl.SchemaExport.? (?:?) - user lacks privilege or object not found: CREATEDBY

但是,当我将字段从基类移动到父(消费者)类时,此异常不再发生,并且字段也会被填充。

最佳答案

您需要使用 inheritance strategy hibernate 中 在您的基础实体中,您需要添加一个注释,以便 hibernate 知道要使用哪种策略。

@MappedSuperclass

@Inhertitance(strategy=InheritanceType.SINGLE_TABLE) 您可以使用以下策略之一:

  • InheritanceType.SINGLE_TABLE
  • InheritanceType.TABLE_PER_CLASS
  • InheritanceType.JOINED

这个wikibook page可能会有帮助。

关于java - JPA HSQL 不从扩展类中获取字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31629913/

相关文章:

spring - 将字符串转换为本地日期时间

hibernate - 使用 Hibernate 标准和 FetchMode.JOIN 进行分页

java - 尝试使用 JPA 注释保存具有复合键和基本值的映射

java - 是否可以为 Java 11 和 java 模块生成 hibernate 元模型?

java - 单向多对多只读关系

java - 扩展 token 选择运算符

java - android intent-filter <data> 无法正常工作

java - 轻松询问输入的方法而不将输入分配给变量

java - 新线程不显示框架

java - HSQ Hibernate 更新问题