JPA @ManyToOne CascadeType.PERSIST - PullRequest
       10

JPA @ManyToOne CascadeType.PERSIST

0 голосов
/ 26 октября 2018

Привет У меня есть объект с кораблем @ManyToOne Relationship

@Entity
public class TerminEntity extends AbstractEntity implements Serializable {


    @ManyToOne(cascade = CascadeType.PERSIST)
    @JoinColumn(name = "PERSON_ID")
    private PersonEntity person;

@MappedSuperclass   
public abstract class AbstractEntity implements Serializable {
    @Id
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "termineIdGenerator")
    @SequenceGenerator(name="termineIdGenerator", sequenceName =    "SEQ_TERMINVERWALTUNG")
   private Long id;

Когда я пытаюсь сохранить TerminEntity с PersonEntity, которого еще нет в базе данных, я получаю

java.lang.IllegalStateException: во время синхронизации был обнаружен новый объект через отношение, которое не было помечено каскадом PERSIST: TerminEntity (person = PersonEntity

Почему? Что не так с аннотацией @ManyToOne (cascade = CascadeType.PERSIST)?

Работает на Oracle Weblogic 12c

1 Ответ

0 голосов
/ 26 октября 2018

Не знаю почему, но после изменения аннотации на

@ManyToOne(optional = false, cascade = { CascadeType.PERSIST, CascadeType.MERGE,   CascadeType.REFRESH })
@JoinColumn(name = "PERSON_ID", referencedColumnName = "ID", nullable = false) 

Упор работает.

...