2015-06-08 3 views
0

Может somemone пожалуйста помочь с ниже ошибкой, связанной с зимовать при запуске моего WEBSPHERE сервера:Повторный столбец отображения для объекта исключения + спящий режим 3.5.6

В принципе, L_SUBLIST_DETAIL моя основная таблица с первичным ключом. Это имеет от одного до многих сопоставлений с двумя другими таблицами L_SUBLIST_CSI_BU_MAPPING и L_SUBLIST_RULESET_MAPPING. Проблема заключается в том, что с таблицей L_SUBLIST_RULESET_MAPPING, где sublist_id и ruleset_id формируют составной ключ, и сублист_id является внешним ключом, ссылающимся на sublist_id таблицы L_SUBLIST_RULESET_MAPPING.

************************** 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; 
} 



} 

LSublistRulesetMappingVOPK

@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; 
} 



} 

LSublistCsiBUMappingVO

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; 
} 
    } 

LSublistDetailVO

@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; 
} 
} 

ответ

0

вы не можете иметь два первичных ключей @Id, в том же классе LSublistRulesetMappingVO.

+0

Привет, спасибо за ур ответ. Это не первичный ключ, а составной ключ. И такой составной ключ отлично работает для других таблиц, где у нас нет такого сложного отношения. –

0

Я изменил порядок ниже 2 операторов и сервер начал работу. Может any1 объяснить, в чем проблема? ?????????????

Старый:

@OneToMany (каскад = CascadeType.ALL, принеси = FetchType.EAGER, orphanRemoval = истина) @JoinColumn (имя = "SUBLIST_ID", обнуляемым = ложь)
частный набор sublistCsiBUMappingVOSet;

@OneToMany (каскад = CascadeType.ALL, принеси = FetchType.EAGER, orphanRemoval = истина) @JoinColumn (имя = "SUBLIST_ID", обнуляемым = ложь)
частный набор sublistRulesetMappingVOSet;

Новое:

@OneToMany (каскад = CascadeType.ALL, принеси = FetchType.EAGER, orphanRemoval = истина) @JoinColumn (имя = "SUBLIST_ID", обнуляемым = ложь)
частный набор sublistRulesetMappingVOSet;

@OneToMany (каскад = CascadeType.ALL, принеси = FetchType.EAGER, orphanRemoval = истина) @JoinColumn (имя = "SUBLIST_ID", обнуляемым = ложь)
частный набор sublistCsiBUMappingVOSet;

Смежные вопросы