【问题标题】:Mapping exception: Unable to find column with logical name映射异常:找不到具有逻辑名称的列
【发布时间】:2020-02-21 23:57:45
【问题描述】:

我的休眠程序有问题。我已经删除并重写了类,但仍然抛出同样的错误。我没有在这个表中声明 cod_modulo,即使我删除了一对多参数,仍然会抛出同样的错误。我什么都不懂。

这里引用的类。它还具有所有元素的 getter 和 setter 以及空的公共构造函数。

模类


@Entity
@Table(name="modulo")

public class Modulo implements Serializable {

  private static final long serialVersionUID = 1L;

  @Id
  @SequenceGenerator(name = "SEQ_MODULO", sequenceName = "SEQ_MODULO", initialValue = 1, allocationSize = 1)
  @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "SEQ_MODULO")
  private int cod_modulo;

  @Column(name = "ancho_modulo")
  private Double ancho_modulo;

  @Column(name = "largo_modulo")
  private Double largo_modulo;

  @Column(name = "alto_modulo")
  private Double alto_modulo;

  @Column(name = "orden")
  private Integer orden;

  @ManyToOne(cascade = CascadeType.DETACH, targetEntity = Lineal.class, fetch = FetchType.EAGER)
  @JoinColumn(name = "cod_lineal", referencedColumnName = "cod_lineal")
  private Lineal lineal;

  //@OrderBy
  @JsonProperty(access = Access.WRITE_ONLY)
  @OneToMany(mappedBy = "modulo", fetch = FetchType.EAGER, cascade = CascadeType.ALL)
  private Set<Balda> baldas;


直系阶级

@Entity
@Table(name="lineal")

public class Lineal implements Serializable{


      /**
     * 
     */
    private static final long serialVersionUID = 1L;

    @Id
      @SequenceGenerator(name = "SEQ_LINEAL", sequenceName = "SEQ_LINEAL", initialValue = 1, allocationSize = 1)
      @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "SEQ_LINEAL")
      private int cod_lineal;

      @ManyToOne(cascade = CascadeType.DETACH, targetEntity = Seccion.class, fetch = FetchType.EAGER)
      @JoinColumn(name = "cod_seccion", referencedColumnName = "cod_seccion")
      private Seccion seccion;

      @JsonProperty(access = Access.WRITE_ONLY)
      @OneToMany(mappedBy = "lineal", fetch = FetchType.EAGER, cascade = CascadeType.ALL)
      private Set<Modulo> modulos;

      @Column(name = "refrigerado")
      private Boolean refrigerado;

      @Column(name = "horizontal")
      private Boolean horizontal;

      @Column(name = "pos_x")
      private Double pos_x;

      @Column(name = "pos_y")
      private Double pos_y;

错误:

映射异常:无法在 org.hibernate.mapping.Table(lineal) 及其相关的超级表和辅助表中找到逻辑名称为 cod_modulo 的列

【问题讨论】:

  • 但是lineal表有cod_lineal字段,cod_modulo对应的是模表的主键。 1 lineal 有很多模数,所以我不能在 lineal 类中放置 cod_modulo 字段。我不明白你的提示。
  • Modulo 是否有cod_lineal 所要求的@JoinColumn(name = "cod_lineal", referencedColumnName = "cod_lineal") 列?

标签: java postgresql hibernate exception mapping


【解决方案1】:

尝试为您的 cod_modulo 属性添加 @Column,如下所示:

  @Id
  @SequenceGenerator(name = "SEQ_MODULO", sequenceName = "SEQ_MODULO", initialValue = 1, allocationSize = 1)
  @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "SEQ_MODULO")
  @Column(name = "cod_modulo")
  private int cod_modulo;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-01-27
    • 1970-01-01
    • 1970-01-01
    • 2023-04-04
    • 2021-01-30
    • 2022-10-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多