Имею три сущности: Database, Table, Field.
Связаны они отношением one-to-many. Но при вызове метода save в jpa repository, выдаёт ошибку. Уже ставил и аннотацию @NotFound(action = NotFoundAction.IGNORE)
над связью many-to-one, но не помогает. В чём проблема?
Caused by: javax.persistence.EntityNotFoundException: Unable to find com.domain.Table with id 79fa34b6-b2e7-4c13-a4c8-e8f216a4b4c7 at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$JpaEntityNotFoundDelegate.handleEntityNotFound(EntityManagerFactoryBuilderImpl.java:158) at org.hibernate.event.internal.DefaultLoadEventListener.load(DefaultLoadEventListener.java:227) at org.hibernate.event.internal.DefaultLoadEventListener.proxyOrLoad(DefaultLoadEventListener.java:278) at org.hibernate.event.internal.DefaultLoadEventListener.doOnLoad(DefaultLoadEventListener.java:121) at org.hibernate.event.internal.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:89) at org.hibernate.internal.SessionImpl.fireLoad(SessionImpl.java:1239) at org.hibernate.internal.SessionImpl.internalLoad(SessionImpl.java:1122) at org.hibernate.type.EntityType.resolveIdentifier(EntityType.java:646) at org.hibernate.type.EntityType.resolve(EntityType.java:431) at org.hibernate.type.EntityType.replace(EntityType.java:330) at org.hibernate.type.CollectionType.replaceElements(CollectionType.java:543) at org.hibernate.type.CollectionType.replace(CollectionType.java:688) at org.hibernate.type.AbstractType.replace(AbstractType.java:144) at org.hibernate.type.TypeHelper.replaceAssociations(TypeHelper.java:264) at org.hibernate.event.internal.DefaultMergeEventListener.copyValues(DefaultMergeEventListener.java:420) at org.hibernate.event.internal.DefaultMergeEventListener.entityIsTransient(DefaultMergeEventListener.java:240) at org.hibernate.event.internal.DefaultMergeEventListener.entityIsDetached(DefaultMergeEventListener.java:301) at org.hibernate.event.internal.DefaultMergeEventListener.onMerge(DefaultMergeEventListener.java:170) at org.hibernate.event.internal.DefaultMergeEventListener.onMerge(DefaultMergeEventListener.java:69) at org.hibernate.internal.SessionImpl.fireMerge(SessionImpl.java:883) at org.hibernate.internal.SessionImpl.merge(SessionImpl.java:869) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler.invoke(SharedEntityManagerCreator.java:298) at com.sun.proxy.$Proxy150.merge(Unknown Source) at org.springframework.data.jpa.repository.support.SimpleJpaRepository.save(SimpleJpaRepository.java:511) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.executeMethodOn(RepositoryFactorySupport.java:504) at org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.doInvoke(RepositoryFactorySupport.java:489) at org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.invoke(RepositoryFactorySupport.java:461) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) at org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor.invoke(DefaultMethodInvokingMethodInterceptor.java:56) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:99) at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:282) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:136) ... 141 common frames omitted
Database класс:
@Entity
@Table(name = "data_base", schema = "dbmanager")
public class Database {
@Id
@NotNull
@Column(name = "id_database", unique = true)
private String id;
@Column(name = "database_url")
private String databaseUrl;
@Column(name = "database_user")
private String databaseUser;
@Column(name = "database_password")
private String databasePassword;
@OneToMany(mappedBy = "database")
private Set<Table> tables;
}
Table класс
@Entity
@javax.persistence.Table(name = "data_base_table", schema = "dbmanager")
public class Table {
@Id
@NotNull
@Column(name = "id_table", unique = true)
private String id;
@Column(name = "table_name")
@NotNull
private String name;
@Column(name = "table_visible")
private Integer visible;
@ManyToOne(fetch = FetchType.LAZY)
@NotFound(action = NotFoundAction.IGNORE)
@JoinColumn(name = "id_database")
private Database database = new Database();
@OneToMany(mappedBy = "table")
private Set<Field> fields;
}
Field класс
@Entity
@javax.persistence.Table(name = "table_field", schema = "dbmanager")
public class Field {
@Id
@NotNull
@Column(name = "id_field", unique = true)
private String id;
@Column(name = "field_name")
@NotNull
private String name;
@Column(name = "field_visible")
@NotNull
private Integer visible;
@ManyToOne(fetch = FetchType.LAZY)
@NotFound(action = NotFoundAction.IGNORE)
@JoinColumn(name = "id_table")
private Table table = new Table();
}
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Виртуальный выделенный сервер (VDS) становится отличным выбором
Доброго времени сутокСобственно, вопрос состоит в том, как сделать в JavaFX рамку типа Inset / Outset
Учусь программировать по учебнику и попытался понять принципы ООПНаписал следующий код в Main
Есть activity с картой, при нажатии на карту происходит асинхронный запрос и возвращаются данные JSONОдно из полей - адрес