Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 实体异常映射中的重复列+;休眠3.5.6_Java_Hibernate - Fatal编程技术网

Java 实体异常映射中的重复列+;休眠3.5.6

Java 实体异常映射中的重复列+;休眠3.5.6,java,hibernate,Java,Hibernate,在启动我的websphere server时,somemone能否帮助解决与hibernate相关的以下错误: 基本上,L_SUBLIST_DETAIL是带有主键的主表。这有一对多映射和另外两个表L_子列表_CSI_BU_映射和L_子列表_规则集_映射。问题似乎出现在L_子列表_规则集_映射表中,其中子列表_id和规则集_id构成一个复合键,子列表_id是一个外键,引用L_子列表_规则集_映射表的子列表_id ************************** Error **********

在启动我的websphere server时,somemone能否帮助解决与hibernate相关的以下错误:

基本上,L_SUBLIST_DETAIL是带有主键的主表。这有一对多映射和另外两个表L_子列表_CSI_BU_映射和L_子列表_规则集_映射。问题似乎出现在L_子列表_规则集_映射表中,其中子列表_id和规则集_id构成一个复合键,子列表_id是一个外键,引用L_子列表_规则集_映射表的子列表_id

************************** Error ******************

Invocation of init method failed; nested exception is org.hibernate.MappingException: Repeated column in mapping for entity: com.myProj.appName.ruleset.vo.LSublistRulesetMappingVO column: SUBLIST_ID (should be mapped with insert="false" update="false")
涉及的java类如下所示

LSublistRulesetMappingVO

@Entity
@IdClass(LSublistRulesetMappingVOPK.class)
@Table(name = "L_SUBLIST_RULESET_MAPPING")
public class LSublistRulesetMappingVO implements IBaseVO{

@Id
Long sublistId;

@Id
Long rulesetId;

@Column(name = "CSIID")
private String csiid;

public LSublistRulesetMappingVO(){}

public Long getSublistId() {
    return sublistId;
}

public void setSublistId(Long sublistId) {
    this.sublistId = sublistId;
}

public Long getRulesetId() {
    return rulesetId;
}

public void setRulesetId(Long rulesetId) {
    this.rulesetId = rulesetId;
}

public String getCsiid() {
    return csiid;
}

public void setCsiid(String csiid) {
    this.csiid = csiid;
}



}
import com.myProj.appName.web.vo.IBaseVO;

@Entity
@Table(name = "L_SUBLIST_CSI_BU_MAPPING")
public class LSublistCsiBUMappingVO implements IBaseVO {    
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "sublistCsiBuMapSeq")
@SequenceGenerator(name="sublistCsiBuMapSeq", sequenceName="L_SUBLIST_CSI_BU_MAPPING_SEQ",  allocationSize = 1) 
@Column(name = "MAPPING_ID")
private Long mappingId;

@Column(name = "SUBLIST_ID", insertable = false, updatable = false)
private Long sublistId;

@Column(name = "CSIID")
private String csiId;

@Column(name = "BU_INTERNAL_ID")
private Long buId;

@Column(name = "SOURCE_SUBLIST_ID")
private String sourceSublistId;



public Long getMappingId() {
    return mappingId;
}

public void setMappingId(Long mappingId) {
    this.mappingId = mappingId;
}

public Long getSublistId() {
    return sublistId;
}

public void setSublistId(Long sublistId) {
    this.sublistId = sublistId;
}

public String getCsiId() {
    return csiId;
}

public void setCsiId(String csiId) {
    this.csiId = csiId;
}

public Long getBuId() {
    return buId;
}

public void setBuId(Long buId) {
    this.buId = buId;
}

public String getSourceSublistId() {
    return sourceSublistId;
}

public void setSourceSublistId(String sourceSublistId) {
    this.sourceSublistId = sourceSublistId;
}
    }
@Entity
@Table(name = "L_SUBLIST_DETAIL")
public class LSublistDetailVO  implements IBaseVO{

@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "sublistDetailSeq")
@SequenceGenerator(name="sublistDetailSeq", sequenceName="L_SUBLIST_DETAIL_SEQ",  allocationSize = 1)   
@Column(name = "SUBLIST_ID")
private Long sublistId;

@Column(name = "SUBLIST_NAME")
private String sublistName;



@Column(name = "SUBLIST_DESC")
private String sublistDesc;





@OneToMany(cascade=CascadeType.ALL, fetch = FetchType.EAGER, orphanRemoval= true)
@JoinColumn(name="SUBLIST_ID", nullable = false)    
private Set<LSublistCsiBUMappingVO> sublistCsiBUMappingVOSet;

@OneToMany(cascade=CascadeType.ALL, fetch = FetchType.EAGER, orphanRemoval= true)
@JoinColumn( name="SUBLIST_ID", nullable = false)   
private Set<LSublistRulesetMappingVO> sublistRulesetMappingVOSet;   



public Long getSublistId() {
    return sublistId;
}

public void setSublistId(Long sublistId) {
    this.sublistId = sublistId;
}

public String getSublistName() {
    return sublistName;
}

public void setSublistName(String sublistName) {
    this.sublistName = sublistName;
}



public String getSublistDesc() {
    return sublistDesc;
}

public void setSublistDesc(String sublistDesc) {
    this.sublistDesc = sublistDesc;
}



public Set<LSublistCsiBUMappingVO> getSublistCsiBUMappingVOSet() {
    return sublistCsiBUMappingVOSet;
}

public void setSublistCsiBUMappingVOSet(
        Set<LSublistCsiBUMappingVO> sublistCsiBUMappingVOSet) {
    this.sublistCsiBUMappingVOSet = sublistCsiBUMappingVOSet;
}

public Set<LSublistRulesetMappingVO> getSublistRulesetMappingVOSet() {
    return sublistRulesetMappingVOSet;
}

public void setSublistRulesetMappingVOSet(
        Set<LSublistRulesetMappingVO> sublistRulesetMappingVOSet) {
    this.sublistRulesetMappingVOSet = sublistRulesetMappingVOSet;
}
}
lspublistrulesetmappingvopk

@Embeddable
public class LSublistRulesetMappingVOPK implements Serializable {

private static final long serialVersionUID = 1L;

@Column(name = "SUBLIST_ID")
Long sublistId;

@Column(name = "RULESET_ID")
Long rulesetId;

public LSublistRulesetMappingVOPK() {}

public LSublistRulesetMappingVOPK(Long sublistId, Long rulesetId) {
    this.sublistId = sublistId;
    this.rulesetId = rulesetId;
}

public Long getSublistId() {
    return sublistId;
}

public void setSublistId(Long sublistId) {
    this.sublistId = sublistId;
}

public Long getRulesetId() {
    return rulesetId;
}

public void setRulesetId(Long rulesetId) {
    this.rulesetId = rulesetId;
}



}
lspublistcsibumappingvo

@Entity
@IdClass(LSublistRulesetMappingVOPK.class)
@Table(name = "L_SUBLIST_RULESET_MAPPING")
public class LSublistRulesetMappingVO implements IBaseVO{

@Id
Long sublistId;

@Id
Long rulesetId;

@Column(name = "CSIID")
private String csiid;

public LSublistRulesetMappingVO(){}

public Long getSublistId() {
    return sublistId;
}

public void setSublistId(Long sublistId) {
    this.sublistId = sublistId;
}

public Long getRulesetId() {
    return rulesetId;
}

public void setRulesetId(Long rulesetId) {
    this.rulesetId = rulesetId;
}

public String getCsiid() {
    return csiid;
}

public void setCsiid(String csiid) {
    this.csiid = csiid;
}



}
import com.myProj.appName.web.vo.IBaseVO;

@Entity
@Table(name = "L_SUBLIST_CSI_BU_MAPPING")
public class LSublistCsiBUMappingVO implements IBaseVO {    
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "sublistCsiBuMapSeq")
@SequenceGenerator(name="sublistCsiBuMapSeq", sequenceName="L_SUBLIST_CSI_BU_MAPPING_SEQ",  allocationSize = 1) 
@Column(name = "MAPPING_ID")
private Long mappingId;

@Column(name = "SUBLIST_ID", insertable = false, updatable = false)
private Long sublistId;

@Column(name = "CSIID")
private String csiId;

@Column(name = "BU_INTERNAL_ID")
private Long buId;

@Column(name = "SOURCE_SUBLIST_ID")
private String sourceSublistId;



public Long getMappingId() {
    return mappingId;
}

public void setMappingId(Long mappingId) {
    this.mappingId = mappingId;
}

public Long getSublistId() {
    return sublistId;
}

public void setSublistId(Long sublistId) {
    this.sublistId = sublistId;
}

public String getCsiId() {
    return csiId;
}

public void setCsiId(String csiId) {
    this.csiId = csiId;
}

public Long getBuId() {
    return buId;
}

public void setBuId(Long buId) {
    this.buId = buId;
}

public String getSourceSublistId() {
    return sourceSublistId;
}

public void setSourceSublistId(String sourceSublistId) {
    this.sourceSublistId = sourceSublistId;
}
    }
@Entity
@Table(name = "L_SUBLIST_DETAIL")
public class LSublistDetailVO  implements IBaseVO{

@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "sublistDetailSeq")
@SequenceGenerator(name="sublistDetailSeq", sequenceName="L_SUBLIST_DETAIL_SEQ",  allocationSize = 1)   
@Column(name = "SUBLIST_ID")
private Long sublistId;

@Column(name = "SUBLIST_NAME")
private String sublistName;



@Column(name = "SUBLIST_DESC")
private String sublistDesc;





@OneToMany(cascade=CascadeType.ALL, fetch = FetchType.EAGER, orphanRemoval= true)
@JoinColumn(name="SUBLIST_ID", nullable = false)    
private Set<LSublistCsiBUMappingVO> sublistCsiBUMappingVOSet;

@OneToMany(cascade=CascadeType.ALL, fetch = FetchType.EAGER, orphanRemoval= true)
@JoinColumn( name="SUBLIST_ID", nullable = false)   
private Set<LSublistRulesetMappingVO> sublistRulesetMappingVOSet;   



public Long getSublistId() {
    return sublistId;
}

public void setSublistId(Long sublistId) {
    this.sublistId = sublistId;
}

public String getSublistName() {
    return sublistName;
}

public void setSublistName(String sublistName) {
    this.sublistName = sublistName;
}



public String getSublistDesc() {
    return sublistDesc;
}

public void setSublistDesc(String sublistDesc) {
    this.sublistDesc = sublistDesc;
}



public Set<LSublistCsiBUMappingVO> getSublistCsiBUMappingVOSet() {
    return sublistCsiBUMappingVOSet;
}

public void setSublistCsiBUMappingVOSet(
        Set<LSublistCsiBUMappingVO> sublistCsiBUMappingVOSet) {
    this.sublistCsiBUMappingVOSet = sublistCsiBUMappingVOSet;
}

public Set<LSublistRulesetMappingVO> getSublistRulesetMappingVOSet() {
    return sublistRulesetMappingVOSet;
}

public void setSublistRulesetMappingVOSet(
        Set<LSublistRulesetMappingVO> sublistRulesetMappingVOSet) {
    this.sublistRulesetMappingVOSet = sublistRulesetMappingVOSet;
}
}
lspublistdetailvo

@Entity
@IdClass(LSublistRulesetMappingVOPK.class)
@Table(name = "L_SUBLIST_RULESET_MAPPING")
public class LSublistRulesetMappingVO implements IBaseVO{

@Id
Long sublistId;

@Id
Long rulesetId;

@Column(name = "CSIID")
private String csiid;

public LSublistRulesetMappingVO(){}

public Long getSublistId() {
    return sublistId;
}

public void setSublistId(Long sublistId) {
    this.sublistId = sublistId;
}

public Long getRulesetId() {
    return rulesetId;
}

public void setRulesetId(Long rulesetId) {
    this.rulesetId = rulesetId;
}

public String getCsiid() {
    return csiid;
}

public void setCsiid(String csiid) {
    this.csiid = csiid;
}



}
import com.myProj.appName.web.vo.IBaseVO;

@Entity
@Table(name = "L_SUBLIST_CSI_BU_MAPPING")
public class LSublistCsiBUMappingVO implements IBaseVO {    
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "sublistCsiBuMapSeq")
@SequenceGenerator(name="sublistCsiBuMapSeq", sequenceName="L_SUBLIST_CSI_BU_MAPPING_SEQ",  allocationSize = 1) 
@Column(name = "MAPPING_ID")
private Long mappingId;

@Column(name = "SUBLIST_ID", insertable = false, updatable = false)
private Long sublistId;

@Column(name = "CSIID")
private String csiId;

@Column(name = "BU_INTERNAL_ID")
private Long buId;

@Column(name = "SOURCE_SUBLIST_ID")
private String sourceSublistId;



public Long getMappingId() {
    return mappingId;
}

public void setMappingId(Long mappingId) {
    this.mappingId = mappingId;
}

public Long getSublistId() {
    return sublistId;
}

public void setSublistId(Long sublistId) {
    this.sublistId = sublistId;
}

public String getCsiId() {
    return csiId;
}

public void setCsiId(String csiId) {
    this.csiId = csiId;
}

public Long getBuId() {
    return buId;
}

public void setBuId(Long buId) {
    this.buId = buId;
}

public String getSourceSublistId() {
    return sourceSublistId;
}

public void setSourceSublistId(String sourceSublistId) {
    this.sourceSublistId = sourceSublistId;
}
    }
@Entity
@Table(name = "L_SUBLIST_DETAIL")
public class LSublistDetailVO  implements IBaseVO{

@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "sublistDetailSeq")
@SequenceGenerator(name="sublistDetailSeq", sequenceName="L_SUBLIST_DETAIL_SEQ",  allocationSize = 1)   
@Column(name = "SUBLIST_ID")
private Long sublistId;

@Column(name = "SUBLIST_NAME")
private String sublistName;



@Column(name = "SUBLIST_DESC")
private String sublistDesc;





@OneToMany(cascade=CascadeType.ALL, fetch = FetchType.EAGER, orphanRemoval= true)
@JoinColumn(name="SUBLIST_ID", nullable = false)    
private Set<LSublistCsiBUMappingVO> sublistCsiBUMappingVOSet;

@OneToMany(cascade=CascadeType.ALL, fetch = FetchType.EAGER, orphanRemoval= true)
@JoinColumn( name="SUBLIST_ID", nullable = false)   
private Set<LSublistRulesetMappingVO> sublistRulesetMappingVOSet;   



public Long getSublistId() {
    return sublistId;
}

public void setSublistId(Long sublistId) {
    this.sublistId = sublistId;
}

public String getSublistName() {
    return sublistName;
}

public void setSublistName(String sublistName) {
    this.sublistName = sublistName;
}



public String getSublistDesc() {
    return sublistDesc;
}

public void setSublistDesc(String sublistDesc) {
    this.sublistDesc = sublistDesc;
}



public Set<LSublistCsiBUMappingVO> getSublistCsiBUMappingVOSet() {
    return sublistCsiBUMappingVOSet;
}

public void setSublistCsiBUMappingVOSet(
        Set<LSublistCsiBUMappingVO> sublistCsiBUMappingVOSet) {
    this.sublistCsiBUMappingVOSet = sublistCsiBUMappingVOSet;
}

public Set<LSublistRulesetMappingVO> getSublistRulesetMappingVOSet() {
    return sublistRulesetMappingVOSet;
}

public void setSublistRulesetMappingVOSet(
        Set<LSublistRulesetMappingVO> sublistRulesetMappingVOSet) {
    this.sublistRulesetMappingVOSet = sublistRulesetMappingVOSet;
}
}
@实体
@表(name=“L\u子列表\u详细信息”)
公共类lspublistdetailvo实现了IBaseVO{
@身份证
@GeneratedValue(策略=GenerationType.SEQUENCE,generator=“sublistDetailSeq”)
@SequenceGenerator(name=“sublistDetailSeq”,sequenceName=“L_SUBLIST_DETAIL_SEQ”,allocationSize=1)
@列(name=“SUBLIST\u ID”)
私有长子列表;
@列(name=“SUBLIST\u name”)
私有字符串子列表名;
@列(name=“SUBLIST\u DESC”)
私有字符串子列表描述;
@OneToMany(cascade=CascadeType.ALL,fetch=FetchType.EAGER,orphan=true)
@JoinColumn(name=“SUBLIST\u ID”,null=false)
私有集子列表BumAppingVoset;
@OneToMany(cascade=CascadeType.ALL,fetch=FetchType.EAGER,orphan=true)
@JoinColumn(name=“SUBLIST\u ID”,null=false)
私有集子ListRuleSetMappingVoset;
公共长getSublistId(){
返回子列表;
}
public void setpublistid(长子列表){
this.sublistId=sublistId;
}
公共字符串getSublistName(){
返回子列表名;
}
public void setPublistName(字符串子列表名){
this.sublistName=sublistName;
}
公共字符串getSublistDesc(){
返回子列表描述;
}
public void setpublistdesc(字符串sublistDesc){
this.sublistDesc=sublistDesc;
}
公共集getSublistCsiBUMappingVOSet(){
返回子ListCSibumAppingVoset;
}
public void setpublistcsibumappingvoset(
集合子列表CSIBUMAppingVOSET){
this.sublistcisbumappingvoset=sublistcisbumappingvoset;
}
公共集getSublistRulesetMappingVOSet(){
返回子ListRuleSetMappingVoSet;
}
public void setpublicstrulesetmappingvoset(
Set子列表规则setMappingVOSet){
this.sublistRulesetMappingVOSet=sublistRulesetMappingVOSet;
}
}

同一类LSublistRulesetMappingVO中不能有两个主键@Id。

我已更改以下两条语句的顺序,服务器已启动。 有人能解释问题出在哪里吗

旧的:

@OneToMany(cascade=CascadeType.ALL,fetch=FetchType.EAGER,orphan=true) @JoinColumn(name=“SUBLIST\u ID”,nullable=false)
私有集子列表BumAppingVoset

@OneToMany(cascade=CascadeType.ALL,fetch=FetchType.EAGER,orphan=true) @JoinColumn(name=“SUBLIST\u ID”,nullable=false)
私有集子ListRuleSetMappingVoset

新的:

@OneToMany(cascade=CascadeType.ALL,fetch=FetchType.EAGER,orphan=true) @JoinColumn(name=“SUBLIST\u ID”,nullable=false)
私有集子ListRuleSetMappingVoset

@OneToMany(cascade=CascadeType.ALL,fetch=FetchType.EAGER,orphan=true) @JoinColumn(name=“SUBLIST\u ID”,nullable=false)

私有集子列表BumAppingVoset

嗨,谢谢你的回复。它不是主键,而是复合键。这种复合键对于其他没有如此复杂关系的表也很有效。