Cplusplusrookie 2016-11-16 14:51 采纳率: 50%
浏览 1033

hibernate注释建表的时候总提示重复的外键管理

我的实体集如下
package com.vscut.erp.model;

import javax.persistence.*;
import java.util.Set;

/** 数据字典商品分类

  • Created by ShuD on 2016/5/24.
    */
    @Entity
    @Table(name="dictGoodClass")
    public class DictGoodClass extends DataDictBase{
    @Id
    @SequenceGenerator(name = "good_generator", sequenceName = "GOOD_SEQ")
    @GeneratedValue(strategy=GenerationType.SEQUENCE, generator = "good_generator")
    @Column(unique = true, nullable = false, precision = 5, scale = 0)
    private long id;
    private String code;
    private String name;
    @ManyToOne
    private DictUnit unit1;
    @ManyToOne
    private DictUnit unit2;
    private String permissionCode;//许可证代码
    private String normalTax;//普通税率
    private String favTax;//优惠税率
    private String exportTax;//出口税率
    private String consumeTax;//消费税率
    private String addTax;//增值税率
    @OneToMany(cascade=CascadeType.ALL,fetch=FetchType.LAZY,mappedBy="dictGoodClass")
    private Set factors;
    private String remark;
    @Column(nullable = false, length = 255)
    public String getCode() {
    return code;
    }

    public void setCode(String code) {
    this.code = code;
    }
    @Column(nullable = false, length = 20)
    public String getName() {
    return name;
    }

    public void setName(String name) {
    this.name = name;
    }

    public long getId() {
    return id;
    }

    public void setId(long id) {
    this.id = id;
    }

    public DictUnit getUnit1() {
    return unit1;
    }

    public void setUnit1(DictUnit unit1) {
    this.unit1 = unit1;
    }

    public DictUnit getUnit2() {
    return unit2;
    }

    public void setUnit2(DictUnit unit2) {
    this.unit2 = unit2;
    }

    public Set getFactors() {
    return factors;
    }

    public void setFactors(Set factors) {
    this.factors = factors;
    }

    public String getRemark() {
    return remark;
    }

    public void setRemark(String remark) {
    this.remark = remark;
    }

    public String getAddTax() {
    return addTax;
    }

    public void setAddTax(String addTax) {
    this.addTax = addTax;
    }

    public String getConsumeTax() {
    return consumeTax;
    }

    public void setConsumeTax(String consumeTax) {
    this.consumeTax = consumeTax;
    }

    public String getExportTax() {
    return exportTax;
    }

    public void setExportTax(String exportTax) {
    this.exportTax = exportTax;
    }

    public String getFavTax() {
    return favTax;
    }

    public void setFavTax(String favTax) {
    this.favTax = favTax;
    }

    public String getNormalTax() {
    return normalTax;
    }

    public void setNormalTax(String normalTax) {
    this.normalTax = normalTax;
    }

    public String getPermissionCode() {
    return permissionCode;
    }

    public void setPermissionCode(String permissionCode) {
    this.permissionCode = permissionCode;
    }
    }

然后每次程序运行的时候它都会报对于DictUnit对象存在重复的引用约束,我想问这个问题怎么解决....
不好意思直接就贴代码,但是真的怎么百度都百度不到,求大神,谢谢了

  • 写回答

1条回答 默认 最新

  • Book1346 2016-11-17 01:01
    关注

    @ManyToOne
    private DictUnit unit1;
    @ManyToOne
    private DictUnit unit2;
    应该是这里吧。在同一类下,你怎么定义了两个many to one 呢?
    改成many to many
    private Set< DictUnit> unit;

    评论

报告相同问题?

悬赏问题

  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 unity第一人称射击小游戏,有demo,在原脚本的基础上进行修改以达到要求
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line