J'utilise EclipseLink 2.1.3 avec un EntityManager géré par conteneur pour s'interfacer avec une base de données Oracle 11g.EclipseLink 2.1.3, Oracle 11g, retour PK après persistance avec la persistance gérée par le conteneur
Je souhaite que la variable @Id d'une entité soit mise à jour immédiatement après l'appel de persist() sur l'EM.
Quelle est la stratégie correcte pour le faire avec une base de données Oracle?
Aucun des exemples que j'ai trouvés sur ce site ne traite de ce problème de persistance gérée par conteneur.
L'entité se présente comme suit:
@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() {
}
}
Ai-je besoin d'ajouter quelque chose comme ce qui suit?
@Column(nullable = false)
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="ANNOUNCEMENT_DELIVERY_LOG_SEQ")
@SequenceGenerator(name="ANNOUNCEMENT_DELIVERY_LOG_SEQ", sequenceName="ANNOUNCEMENT_DELIVERY_LOG_SEQ")
Pour conserver l'entité, j'appelle simplement persist(). Dois-je aussi appeler flush()?
Pouvez-vous nous montrer la définition de champ PK de classe de l'entité, y compris ses annotations? – MRalwasser