私は、Journal JournalがPrimary Keyであり、JournalIDがUnique ConstraintであるテーブルJournalの列がほとんどありません。hibernateのSaveOrUpdateが予期せず動作する
JournalKeyは自動生成されたキーです。
insertOrUpdateを使用して保存を開始すると、JournalIDが存在しないときに行を挿入し、それ以外の場合は更新することを想定しています。
JournalKeyは自動生成されるため、再生する役割はあまりありません。 しかし、UniqueConstraintViolationエラーが表示されます。
助けてください。
ジャーナルが
public Object saveOrUpdateObj(Object obj){
Session session = HibernateUtil.getSession();
try{
session.beginTransaction();
session.saveOrUpdate(obj);
session.getTransaction().commit();
}finally{
session.close();
}
return obj;
}
として保存ジャーナルクラスは、このよう
@Entity
@Table(name="Dim_Journal")
public class Journal {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@Column(name="JournalKey")
private Long journalKey;
@ManyToOne(cascade=CascadeType.ALL)
@JoinColumn(name="FK_Org_Key")
private Organisation organisation;
@Column(name="JournalID")
private String journalID;
@Column(name="JournalDate")
private Date journalDate;
@Column(name="JournalNumber")
private String JournalNumber;
@Column(name="JournalCreationDate")
private Date createdDateUTC;
@Column(name="SourceID")
private String SourceID;
@Column(name="SourceType")
@Enumerated(EnumType.STRING)
private JournalSourceType sourceType;
@Transient
private List<JournalLine> journalLines;
@Transient
private Long organisationId;
}
しかし、 'journalKey'は主キーです。この場合、JournalIDの値は関係ありません。私がポイントを逃していない限り。エンティティを永続させるコード全体を投稿してください – rapasoft
@rapasoft:コードが追加されました –
Hibernateのバージョンは? –