'com.provider.fatoria.model.ConfigPergunta' (используйте '@Column(insertable=false, updatable=false)' при сопоставлении JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 'com.provider.fatoria.model.ConfigPergunta' (используйте '@Column(insertable=false, updatable=false)' при сопоставлении

Сообщение Anonymous »

У меня проблема, потому что моя таблица имеет связь с самим собой. Мне нужно иметь возможность вставлять и изменять столбец, но он всегда выдает эту ошибку: Столбец «idTipoDoctoEntrada» дублируется в сопоставлении для объекта «com.provider.fatoria.model.ConfigPergunta» (используйте «@Column(insertable=false, updatable=false) 'при сопоставлении нескольких свойств с одним и тем же столбцом). Я не могу сделать это таким образом, потому что мне нужно иметь возможность изменять и вставлять.
ConfigPerguntaPk :

Код: Выделить всё

@Embeddable
public class ConfigPerguntaPk {

private Long idConfigPergunta;

@ManyToOne
@JoinColumn(name = "idTipoDoctoEntrada")
private TipoDoctoEntrada tipoDoctoEntrada;
Конфигурация :

Код: Выделить всё

@Entity
@Table(name = "tbConfigPergunta")
@DynamicUpdate
public class ConfigPergunta {
@EmbeddedId
private ConfigPerguntaPk configPerguntaPk;

private String txPergunta;
private String txAbaDestinoResposta;
private String txCelulaDestinoResposta;
private Character indAtivo;

@ManyToOne
@JoinColumn(name = "idUsuarioUltAtualizacao")
private Usuario usuarioUltAtualizacao;
private LocalDateTime dtHoraInclusao;
private LocalDateTime dtHoraUltAtualizacao;

@ManyToOne
@JoinColumns({
@JoinColumn(name = "idPerguntaClonada" ,referencedColumnName = "idConfigPergunta", insertable = true, updatable = true),
@JoinColumn(name = "idTipoDoctoEntrada", referencedColumnName = "idTipoDoctoEntrada", insertable = true, updatable = true)
})
private ConfigPergunta configPerguntaClonada;

private Character indPerguntaSuperAdmin;
Ошибка :

Код: Выделить всё

Caused by: jakarta.persistence.PersistenceException: [PersistenceUnit: default] Unable to build Hibernate SessionFactory; nested exception is org.hibernate.MappingException: Column 'idTipoDoctoEntrada' is duplicated in mapping for entity 'com.provider.fatoria.model.ConfigPergunta' (use '@Column(insertable=false, updatable=false)' when mapping multiple properties to the same column)
at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:421) ~[spring-orm-6.1.13.jar:6.1.13]
at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:396) ~[spring-orm-6.1.13.jar:6.1.13]
at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.afterPropertiesSet(LocalContainerEntityManagerFactoryBean.java:366) ~[spring-orm-6.1.13.jar:6.1.13]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1853) ~[spring-beans-6.1.13.jar:6.1.13]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1802) ~[spring-beans-6.1.13.jar:6.1.13]
...  106 common frames omitted
Caused by: org.hibernate.MappingException: Column 'idTipoDoctoEntrada' is duplicated in mapping for entity 'com.provider.fatoria.model.ConfigPergunta' (use '@Column(insertable=false, updatable=false)' when mapping multiple properties to the same column)
at org.hibernate.mapping.Value.checkColumnDuplication(Value.java:196) ~[hibernate-core-6.5.3.Final.jar:6.5.3.Final]
at org.hibernate.mapping.MappingHelper.checkPropertyColumnDuplication(MappingHelper.java:251) ~[hibernate-core-6.5.3.Final.jar:6.5.3.Final]
at org.hibernate.mapping.PersistentClass.checkColumnDuplication(PersistentClass.java:939) ~[hibernate-core-6.5.3.Final.jar:6.5.3.Final]
at org.hibernate.mapping.PersistentClass.validate(PersistentClass.java:694) ~[hibernate-core-6.5.3.Final.jar:6.5.3.Final]
at org.hibernate.mapping.RootClass.validate(RootClass.java:276) ~[hibernate-core-6.5.3.Final.jar:6.5.3.Final]
at org.hibernate.boot.internal.MetadataImpl.validate(MetadataImpl.java:496) ~[hibernate-core-6.5.3.Final.jar:6.5.3.Final]
at org.hibernate.internal.SessionFactoryImpl.(SessionFactoryImpl.java:280) ~[hibernate-core-6.5.3.Final.jar:6.5.3.Final]
at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:457) ~[hibernate-core-6.5.3.Final.jar:6.5.3.Final]
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:1506) ~[hibernate-core-6.5.3.Final.jar:6.5.3.Final]
at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:75) ~[spring-orm-6.1.13.jar:6.1.13]
at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:390) ~[spring-orm-6.1.13.jar:6.1.13]
at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:409) ~[spring-orm-6.1.13.jar:6.1.13]
... 110 common frames omitted
Я ожидал, что смогу запустить приложение, а также вставить и обновить

Подробнее здесь: https://stackoverflow.com/questions/791 ... false-upda
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»