Estaba recopilando información sobre el método flush (), pero no tengo muy claro cuándo usarlo y cómo usarlo correctamente. Por lo que leí, tengo entendido que el contenido del contexto de persistencia se sincronizará con la base de datos, es decir, emitiendo declaraciones pendientes o actualizando los datos de la entidad.
Ahora tengo el siguiente escenario con dos entidades Ay B(en una relación uno a uno, pero no impuesta ni modelada por JPA). Atiene un PK compuesto, que se configura manualmente, y también tiene un campo de IDENTIDAD generado automáticamente recordId. Esto recordIddebe escribirse en la entidad Bcomo una clave externa para A. Estoy ahorrando Ay Ben una sola transacción. El problema es que el valor generada automáticamente A.recordIdno está disponible dentro de la transacción, a menos que puedo hacer una llamada explícita de em.flush()después de llamar em.persist()a A. (Si tengo un IDENTITY PK generado automáticamente, entonces el valor se actualiza directamente en la entidad, pero ese no es el caso aquí).
¿Puede em.flush()causar algún daño al usarlo dentro de una transacción?