EclipseLink 2.1.3 をコンテナー管理の EntityManager と共に使用して、Oracle 11g DB とやり取りしています。
EM で persist() を呼び出した直後にエンティティの @Id 変数を更新したいと考えています。
Oracle DB でこれを行うための正しい戦略は何ですか?
このサイトで私が見つけた例のどれも、コンテナ管理の永続性に関するこの問題を扱っていません。
エンティティは次のようになります。
@Entity
@Table(name = "ANNOUNCEMENT_DELIVERY_LOG")
public class AnnouncementDeliveryLog implements Serializable {
@Id
private BigDecimal id;
@ManyToOne
@JoinColumn(name = "ANNOUNCEMENT_ID ")
private Announcements announcement;
public AnnouncementDeliveryLog() {
}
}
次のようなものを追加する必要がありますか?
@Column(nullable = false)
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="ANNOUNCEMENT_DELIVERY_LOG_SEQ")
@SequenceGenerator(name="ANNOUNCEMENT_DELIVERY_LOG_SEQ", sequenceName="ANNOUNCEMENT_DELIVERY_LOG_SEQ")
エンティティを永続化するには、persist() を呼び出します。また、flush() を呼び出す必要がありますか?