org.springframework.orm.jpa.JpaSystemException:无法通过反射设置字段值[POST_INSERT_INDICATOR]值 [英] org.springframework.orm.jpa.JpaSystemException: Could not set field value [POST_INSERT_INDICATOR] value by reflection
问题描述
我使用Spring Boot项目工作,并且拥有以下实体:
@Entity
public class Ip {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name =IP_ADDR_ID_2)
private Long ID;
@Column(name =IP_ADDRESS_2)
@NotEmpty
私有字符串地址;
@OneToMany(cascade = CascadeType.ALL,mappedBy =ip)
private List< IMAssociation> httpInfoMessages2;
$ / code>
消息实体在下面提供,
@Entity
公共类消息{
@Id
@GeneratedValue(strategy = GenerationType。 IDENTITY)
@Column(name =S_ID_2)
private Long sId;
@Column(name =STATUS_ID_2)
private long statusId;
@NotEmpty
@Column(name =STATUS_2)
private String status;
@OneToMany(cascade = CascadeType.ALL,mappedBy =message)
private List< IMAssociation>信息;
}
最后,实体使得Ip和Message之间的关联为提供,
@Entity
@Table(name =IP_HTTP_MESSAGE)
// @ IdClass( AssociationId.class)
public class IMAssociation implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Id
@Column(name =IP_ADDRESS_ID)
private长度ipAddressId;
@Id
@Column(name =HTTP_MESSAGE_ID)
private Long httpMessageId;
@ManyToOne
@PrimaryKeyJoinColumn(name =ipAddressId,referencedColumnName =IP_ADDR_ID_2)
// @JoinColumn(name =ipAddressId,updatable = false,insertable = false,referencedColumnName =IP_ADDR_ID_2)
私人ip ip;
@ManyToOne
@PrimaryKeyJoinColumn(name =httpMessageId,referencedColumnName =S_ID_2)
// @JoinColumn(name =httpMessageId,updatable = false,insertable = false,referencedColumnName =S_ID_2)
私人消息消息;
// @ManyToOne
@JoinColumn(name =IP_ADDRESS_2,updatable = false,insertable = false,referencedColumnName =IP_ADDRESS_2)
私有字符串地址;
@JoinColumn(name =STATUS_CODE,updatable = false,insertable = false,referencedColumnName =STATUS_ID_2)
private长码;
$ b $ @ @CoinColumn(name =STATUS_MESSAGE,updatable = false,insertable = false,referencedColumnName =STATUS_2)
private String codeMessage;
$ b public IMAssociation(){
}
public IMAssociation(Long code,String codeMessage){
this.code = code;
this.codeMessage = codeMessage;
$ b $ / code>
List< IMAssociation>列表< IMAssociation>
imAssociations = new ArrayList<>();
for(int j = 0; j <5; j ++){
IMAssociation imAssociation = new IMAssociation(Long.valueOf(integerListEntry.getKey()),
消息);
imAssociations.add(imAssociation);
}
ip ip = new Ip('127.0.0.1',imAssociations);
清单< Ip> ips = new ArrayList<>();
ips.add(ip);
当我试图保存 List< ip>
在数据库中,我得到以下错误:
引起:org.springframework.orm.jpa.JpaSystemException:可能未通过反射设置字段值[POST_INSERT_INDICATOR]值:[class com.ef.entity.IMAssociation.id] com.ef.entity.IMAssociation.id的setter;嵌套异常是org.hibernate.PropertyAccessException:由反射无法设置字段值[POST_INSERT_INDICATOR]的值:[类com.ef.entity.IMAssociation.id] com.ef.entity.IMAssociation.id
$ B的设定器
$ b导致:org.hibernate.PropertyAccessException:无法通过反射设置字段值[POST_INSERT_INDICATOR]值:[class com.ef.entity.IMAssociation.id] com.efity.IMAssociation.id的setter
at org.hibernate.property.access.spi.SetterFieldImpl.set(SetterFieldImpl.java:58)〜[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
at org.hibernate.mapping.Component $ ValueGenerationPlan.execute(Component.java:419)〜[冬眠核-5.0.12.Final.jar:5.0.12.Final]
。在org.hibernate.id.CompositeNestedGeneratedValueGenerator .GeneratorId(AbstractSaveEventListener.java: 101)〜[休眠核-5.0.12.Final.jar:5.0.12.Final]在org.hibernate.jpa.event.internal.core.JpaPersistEventListener.saveWithGeneratedId(JpaPersistEventListener.java:67
)〜 [hibernate-entitymanager-5.0.12.Final.jar:5.0.12.Final]
at org.hibernate.event.internal.DefaultPersistEventListener.entityIsTransient(DefaultPersistEventListener.java:189)〜[hibernate-core-5.0。 12.Final.jar:5.0.12.Final]
在org.hibernate.event.internal.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:132)〜[hibernate-core-5.0.12.Final.jar:5.0 .12.Final]
at org.hibernate.internal.SessionImpl.firePersist(SessionImpl.java:765)〜[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
在org.hibernate.jpa.event的org.hibernate.internal.SessionImpl.persist(SessionImpl.java:758)〜[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
。 internal.core.JpaPersistEventListener $ 1.cascade(JpaPersistEventListener.java:80)〜[hibernate-entitymanager-5.0.12.Final.jar:5.0.12.Fina l]
at org.hibernate.engine.internal.Cascade.cascadeToOne(Cascade.java:398)〜[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
at org.hibernate.engine.internal.Cascade.cascadeAssociation(Cascade.java:323)〜[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
at org.hibernate.engine.internal .Cascade.cascadeProperty(Cascade.java:162)〜[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
at org.hibernate.engine.internal.Cascade.cascadeCollectionElements(Cascade。 java:431)〜[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
at org.hibernate.engine.internal.Cascade.cascadeCollection(Cascade.java:363)〜[hibernate -core-5.0.12.Final.jar:5.0.12.Final]
在org.hibernate.engine.internal.Cascade.cascadeAssociation(Cascade.java:326)〜[hibernate-core-5.0.12。 Final.jar:5.0.12.Final]
在org.hibernate.engine.internal.Cascade.cascadeProperty(Cascade.java:162)〜[hibernate-core-5.0.12.Final.jar:5.0.12 .Final]
at org.hibernate.engine.internal.Cascade.cascade( Cascade.java:111)〜[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
at org.hibernate.event.internal.AbstractSaveEventListener.cascadeAfterSave(AbstractSaveEventListener.java:456)〜 [休眠芯-5.0.12.Final.jar:5.0.12.Final]
。在org.hibernate.event.internal.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:278)〜[冬眠核-5.0。 12.Final.jar:5.0.12.Final]
at org.hibernate.event.internal.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:178)〜[hibernate-core-5.0.12.Final.jar:5.0 .12.Final]在org.hibernate.event.internal.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:109)
〜[冬眠核-5.0.12.Final.jar:5.0.12.Final]
。在org.hibernate.jpa.event.internal.core.JpaPersistEventListener.saveWithGeneratedId(JpaPersistEventListener.java:67)〜[冬眠-的EntityManager-5.0.12.Final.jar:5.0.12.Final]
。在org.hibernate.event.internal.DefaultPersistEventListener.entit yIsTransient(DefaultPersistEventListener.java:189)〜[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
at org.hibernate.event.internal.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:132 )〜[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
at org.hibernate.event.internal.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:58)〜[hibernate-core- 5.0.12.Final.jar:5.0.12.Final]
at org.hibernate.internal.SessionImpl.firePersist(SessionImpl.java:775)〜[hibernate-core-5.0.12.Final.jar:5.0 .12.Final]
在org.hibernate.internal.SessionImpl.persist(SessionImpl.java:748)〜[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
在org.hibernate.jpa.spi的org.hibernate.internal.SessionImpl.persist(SessionImpl.java:753)〜[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
。 AbstractEntityManagerImpl.persist(AbstractEntityManagerImpl.java:1146)〜[hibernate-entitymanager-5.0.12.Final.jar:5.0.12.Final]
at sun.reflect.Generat edMethodAccessor19.invoke(Unknown Source)〜[na:na]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)〜[na:1.8.0_144]
at java.lang.reflect .Method.invoke(Method.java:498)〜[na:1.8.0_144]
导致:java.lang.IllegalArgumentException:无法设置java.lang.Long字段com .ef.entity.IMAssociation.id to org.hibernate.id.IdentifierGeneratorHelper $ 2
at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:167)〜[na:1.8.0_144]
at sun .reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:171)〜[na:1.8.0_144]
at sun.reflect.UnsafeObjectFieldAccessorImpl.set(UnsafeObjectFieldAccessorImpl.java:81)〜[na:1.8.0_144]
这里有什么问题?
Update
我改变了 IMAssociation
,
@Entity
@Table(name =IP_HTTP_MESSAGE)
//@IdClass(AssociationId.class)
public class IMAssociation implements Serializable {
// @Id
// @GeneratedValue(strategy = GenerationType.IDENTITY)
// private Long id;
@Id
@Column(name =IP_ADDRESS_ID)
private长度ipAddressId;
@Id
@Column(name =HTTP_MESSAGE_ID)
private Long httpMessageId;
@ManyToOne
@PrimaryKeyJoinColumn(name =IP_ADDRESS_ID,referencedColumnName =IP_ADDR_ID_2)
// @JoinColumn(name =ipAddressId,updatable = false,insertable = false,referencedColumnName =IP_ADDR_ID_2)
私人ip ip;
@ManyToOne
@PrimaryKeyJoinColumn(name =HTTP_MESSAGE_ID,referencedColumnName =S_ID_2)
// @JoinColumn(name =httpMessageId,updatable = false,insertable = false,referencedColumnName =S_ID_2)
私人消息消息;
// @ManyToOne
@JoinColumn(name =IP_ADDRESS_2,updatable = false,insertable = false,referencedColumnName =IP_ADDRESS_2)
私有字符串地址;
@JoinColumn(name =STATUS_CODE,updatable = false,insertable = false,referencedColumnName =STATUS_ID_2)
private长码;
$ b $ @ @CoinColumn(name =STATUS_MESSAGE,updatable = false,insertable = false,referencedColumnName =STATUS_2)
private String codeMessage;
$ b public IMAssociation(){
}
public IMAssociation(Long code,String codeMessage){
this.code = code;
this.codeMessage = codeMessage;
$ / code>
现在,我在运行应用程序,
原因:javax.persistence.EntityExistsException:具有相同标识符值的不同对象已与会话关联: [com.ef.entity.IMAssociation#IMAssociation {,ipAddressId = null,httpMessageId = null,ip = null,message = null,address ='null',code = 404,codeMessage ='404_Not Found'}]
在org.hibernate.jpa.spi.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1664)〜[hibernate-entitymanager-5.0.12.Final.jar:5.0.12.Final]
在org.hibernate.jpa。 spi.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1602)〜[hibernate-entitymanager-5.0.12.Final.jar:5.0.12.Final]
at org.hibernate.jpa.spi.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl .java:1608)〜[hibernate-entitymanager-5.0.12.Final.jar:5.0.12.Final]
at org.hibernate.jpa.spi.AbstractEntityManagerImpl.persist( AbstractEntityManagerImpl.java:1152)〜[hibernate-entitymanager-5.0.12.Final.jar:5.0.12.Final]
at sun.reflect.GeneratedMethodAccessor19.invoke(Unknown Source)〜[na:na]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)〜[na:1.8.0_144]
at java.lang.reflect.Method.invoke(Method.java:498)〜[na: 1.8.0_144]
可能没有需要 ipAddressId
和 httpMessageId
我认为保存这些值的列在dblevel中由自动生成, @PrimaryKeyJoinColumn
注释和值可以通过 ip.getMessage()
在 IMAssociation
和 ip.getId()
。
I work with a Spring Boot project and I have the following entities,
@Entity
public class Ip {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "IP_ADDR_ID_2")
private Long id;
@Column(name = "IP_ADDRESS_2")
@NotEmpty
private String address;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "ip")
private List<IMAssociation> httpInfoMessages2;
}
The message entity is provided below,
@Entity
public class Message {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "S_ID_2")
private Long sId;
@Column(name = "STATUS_ID_2")
private Long statusId;
@NotEmpty
@Column(name = "STATUS_2")
private String status;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "message")
private List<IMAssociation> message;
}
And, lastly, the entity make the association between the Ip and the Message is provided,
@Entity
@Table(name = "IP_HTTP_MESSAGE")
//@IdClass(AssociationId.class)
public class IMAssociation implements Serializable{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Id
@Column(name = "IP_ADDRESS_ID")
private Long ipAddressId;
@Id
@Column(name = "HTTP_MESSAGE_ID")
private Long httpMessageId;
@ManyToOne
@PrimaryKeyJoinColumn(name = "ipAddressId", referencedColumnName = "IP_ADDR_ID_2")
// @JoinColumn(name = "ipAddressId", updatable = false, insertable = false, referencedColumnName = "IP_ADDR_ID_2")
private Ip ip;
@ManyToOne
@PrimaryKeyJoinColumn(name = "httpMessageId", referencedColumnName = "S_ID_2")
// @JoinColumn(name = "httpMessageId", updatable = false, insertable = false, referencedColumnName = "S_ID_2")
private Message message;
// @ManyToOne
@JoinColumn(name = "IP_ADDRESS_2", updatable = false, insertable = false, referencedColumnName = "IP_ADDRESS_2")
private String address;
@JoinColumn(name = "STATUS_CODE", updatable = false, insertable = false, referencedColumnName = "STATUS_ID_2")
private Long code;
@JoinColumn(name = "STATUS_MESSAGE", updatable = false, insertable = false, referencedColumnName = "STATUS_2")
private String codeMessage;
public IMAssociation() {
}
public IMAssociation(Long code, String codeMessage) {
this.code = code;
this.codeMessage = codeMessage;
}
}
The List<IMAssociation>
is made therough the code,
List<IMAssociation> imAssociations = new ArrayList<>();
for(int j =0; j < 5; j++){
IMAssociation imAssociation = new IMAssociation(Long.valueOf(integerListEntry.getKey()),
message);
imAssociations.add(imAssociation);
}
Ip ip = new Ip('127.0.0.1', imAssociations);
List<Ip> ips = new ArrayList<>();
ips.add(ip);
When I tried to persist a List<Ip>
in the database, I get the following error,
Caused by: org.springframework.orm.jpa.JpaSystemException: Could not set field value [POST_INSERT_INDICATOR] value by reflection : [class com.ef.entity.IMAssociation.id] setter of com.ef.entity.IMAssociation.id; nested exception is org.hibernate.PropertyAccessException: Could not set field value [POST_INSERT_INDICATOR] value by reflection : [class com.ef.entity.IMAssociation.id] setter of com.ef.entity.IMAssociation.id
Caused by: org.hibernate.PropertyAccessException: Could not set field value [POST_INSERT_INDICATOR] value by reflection : [class com.ef.entity.IMAssociation.id] setter of com.ef.entity.IMAssociation.id
at org.hibernate.property.access.spi.SetterFieldImpl.set(SetterFieldImpl.java:58) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
at org.hibernate.mapping.Component$ValueGenerationPlan.execute(Component.java:419) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
at org.hibernate.id.CompositeNestedGeneratedValueGenerator.generate(CompositeNestedGeneratedValueGenerator.java:97) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
at org.hibernate.event.internal.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:101) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
at org.hibernate.jpa.event.internal.core.JpaPersistEventListener.saveWithGeneratedId(JpaPersistEventListener.java:67) ~[hibernate-entitymanager-5.0.12.Final.jar:5.0.12.Final]
at org.hibernate.event.internal.DefaultPersistEventListener.entityIsTransient(DefaultPersistEventListener.java:189) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
at org.hibernate.event.internal.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:132) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
at org.hibernate.internal.SessionImpl.firePersist(SessionImpl.java:765) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
at org.hibernate.internal.SessionImpl.persist(SessionImpl.java:758) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
at org.hibernate.jpa.event.internal.core.JpaPersistEventListener$1.cascade(JpaPersistEventListener.java:80) ~[hibernate-entitymanager-5.0.12.Final.jar:5.0.12.Final]
at org.hibernate.engine.internal.Cascade.cascadeToOne(Cascade.java:398) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
at org.hibernate.engine.internal.Cascade.cascadeAssociation(Cascade.java:323) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
at org.hibernate.engine.internal.Cascade.cascadeProperty(Cascade.java:162) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
at org.hibernate.engine.internal.Cascade.cascadeCollectionElements(Cascade.java:431) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
at org.hibernate.engine.internal.Cascade.cascadeCollection(Cascade.java:363) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
at org.hibernate.engine.internal.Cascade.cascadeAssociation(Cascade.java:326) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
at org.hibernate.engine.internal.Cascade.cascadeProperty(Cascade.java:162) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
at org.hibernate.engine.internal.Cascade.cascade(Cascade.java:111) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
at org.hibernate.event.internal.AbstractSaveEventListener.cascadeAfterSave(AbstractSaveEventListener.java:456) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
at org.hibernate.event.internal.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:278) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
at org.hibernate.event.internal.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:178) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
at org.hibernate.event.internal.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:109) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
at org.hibernate.jpa.event.internal.core.JpaPersistEventListener.saveWithGeneratedId(JpaPersistEventListener.java:67) ~[hibernate-entitymanager-5.0.12.Final.jar:5.0.12.Final]
at org.hibernate.event.internal.DefaultPersistEventListener.entityIsTransient(DefaultPersistEventListener.java:189) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
at org.hibernate.event.internal.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:132) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
at org.hibernate.event.internal.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:58) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
at org.hibernate.internal.SessionImpl.firePersist(SessionImpl.java:775) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
at org.hibernate.internal.SessionImpl.persist(SessionImpl.java:748) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
at org.hibernate.internal.SessionImpl.persist(SessionImpl.java:753) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
at org.hibernate.jpa.spi.AbstractEntityManagerImpl.persist(AbstractEntityManagerImpl.java:1146) ~[hibernate-entitymanager-5.0.12.Final.jar:5.0.12.Final]
at sun.reflect.GeneratedMethodAccessor19.invoke(Unknown Source) ~[na:na]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_144]
at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_144]
Caused by: java.lang.IllegalArgumentException: Can not set java.lang.Long field com.ef.entity.IMAssociation.id to org.hibernate.id.IdentifierGeneratorHelper$2
at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:167) ~[na:1.8.0_144]
at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:171) ~[na:1.8.0_144]
at sun.reflect.UnsafeObjectFieldAccessorImpl.set(UnsafeObjectFieldAccessorImpl.java:81) ~[na:1.8.0_144]
What is the issue here?
Update
I have changed the IMAssociation
class and its provided below,
@Entity
@Table(name = "IP_HTTP_MESSAGE")
//@IdClass(AssociationId.class)
public class IMAssociation implements Serializable {
// @Id
// @GeneratedValue(strategy = GenerationType.IDENTITY)
// private Long id;
@Id
@Column(name = "IP_ADDRESS_ID")
private Long ipAddressId;
@Id
@Column(name = "HTTP_MESSAGE_ID")
private Long httpMessageId;
@ManyToOne
@PrimaryKeyJoinColumn(name = "IP_ADDRESS_ID", referencedColumnName = "IP_ADDR_ID_2")
// @JoinColumn(name = "ipAddressId", updatable = false, insertable = false, referencedColumnName = "IP_ADDR_ID_2")
private Ip ip;
@ManyToOne
@PrimaryKeyJoinColumn(name = "HTTP_MESSAGE_ID", referencedColumnName = "S_ID_2")
// @JoinColumn(name = "httpMessageId", updatable = false, insertable = false, referencedColumnName = "S_ID_2")
private Message message;
// @ManyToOne
@JoinColumn(name = "IP_ADDRESS_2", updatable = false, insertable = false, referencedColumnName = "IP_ADDRESS_2")
private String address;
@JoinColumn(name = "STATUS_CODE", updatable = false, insertable = false, referencedColumnName = "STATUS_ID_2")
private Long code;
@JoinColumn(name = "STATUS_MESSAGE", updatable = false, insertable = false, referencedColumnName = "STATUS_2")
private String codeMessage;
public IMAssociation() {
}
public IMAssociation(Long code, String codeMessage) {
this.code = code;
this.codeMessage = codeMessage;
}
}
Now, I get the following error while I run the app,
Caused by: javax.persistence.EntityExistsException: A different object with the same identifier value was already associated with the session : [com.ef.entity.IMAssociation#IMAssociation{, ipAddressId=null, httpMessageId=null, ip=null, message=null, address='null', code=404, codeMessage='404_Not Found'}]
at org.hibernate.jpa.spi.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1664) ~[hibernate-entitymanager-5.0.12.Final.jar:5.0.12.Final]
at org.hibernate.jpa.spi.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1602) ~[hibernate-entitymanager-5.0.12.Final.jar:5.0.12.Final]
at org.hibernate.jpa.spi.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1608) ~[hibernate-entitymanager-5.0.12.Final.jar:5.0.12.Final]
at org.hibernate.jpa.spi.AbstractEntityManagerImpl.persist(AbstractEntityManagerImpl.java:1152) ~[hibernate-entitymanager-5.0.12.Final.jar:5.0.12.Final]
at sun.reflect.GeneratedMethodAccessor19.invoke(Unknown Source) ~[na:na]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_144]
at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_144]
It might be that there is no need for ipAddressId
and httpMessageId
I think that columns holding those values are generated automatically in dblevel by @PrimaryKeyJoinColumn
annotations and the value can be accessed in IMAssociation
by ip.getMessage()
and ip.getId()
.
这篇关于org.springframework.orm.jpa.JpaSystemException:无法通过反射设置字段值[POST_INSERT_INDICATOR]值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!