繁体   English   中英

Hibernate @ManyToOne映射错误

[英]Hibernate @ManyToOne mapping error

祝你好运 我有2张桌子。

 CREATE TABLE A(
  id NUMBER(10) NOT NULL,
  name VARCHAR2(255) NULL,
  category VARCHAR2(255) NULL,
  is_hidder NUMBER(1) NULL,
  is_enabled NUMBER(1) NULL,
  b_id NUMBER(10) NULL,
  CONSTRAINT pk_a PRIMARY KEY (ID),
  CONSTRAINT fk_to_b
  FOREIGN KEY (vj_users_preferences_id)
  REFERENCES VJ_USER_PREFERENCES(ID)
);

CREATE TABLE B(
  ID NUMBER(10) NOT NULL,
  EXT_ID NUMBER(10) NOT NULL,
  KEY VARCHAR2(1024) NOT NULL,
  VALUE VARCHAR2(1024) NOT NULL,
  CONSTRAINT PK_B PRIMARY KEY(ID)
);

对于这两个表我都有实体,我想将它们映射到@OneToOne。

class Entity A{
    .......
    @OneToOne(cascade = CascadeType.ALL)
    @JoinColumn(name="pk_b", referencedColumnName = "id")
    private B b;
}

实体B是审计的,没有A字段,因此连接是单向的。 当我试图坚持A实体时,我得到了错误:

引发者:org.hibernate.HibernateException:无法确定动态地图实体的类型

抛出此异常:

org.hibernate.tuple.entity.DynamicMapEntityTuplizer.BasicEntityNameResolver#resolveEntityName

因为输入是Map并且它没有:DynamicMapInstantiator.KEY。

有人可以帮我解决这个问题吗? 我无法弄清楚为什么Hibernate在没有必要价值的情况下创建该地图。 我的映射有问题吗?

我的UI表单似乎收到了超过50个符号,但数据库有: EXT_ID NUMBER(10) NOT NULL当我更改表以反映UI可能性(例如EXT_ID NUMBER(50)NOT NULL)时,错误消失了。

根据我的理解,这种例外在这种情况下会产生误导。 我期待看到:SQLGrammarException的那种。 希望这会有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM