gpt4 book ai didi

java - StackOverflowError 与@EmbeddedId

转载 作者:行者123 更新时间:2023-11-30 08:04:17 24 4
gpt4 key购买 nike

我有一个主类和一个辅助类,用于存储保存时的错误。错误可以有多种类型,主键是错误的主要类别和类型。这是我的类的映射:

我的初级类(class):

@Entity
@Table(name = "foo")
public class FooEntity implements Serializable {

private static final long serialVersionUID = 1L;

@Id
@GeneratedValue
@Column(name = "id")
private Integer id;

@Column(name = "param1")
private String param1;

@OneToMany(fetch = FetchType.LAZY, mappedBy = "id.foo", cascade = CascadeType.ALL)
List<FooErrorEntity> errors;
//getters&setters
}

我的错误类:

@Entity
@Table(name = "fooerror")
public class FooErrorEntity implements Serializable {

private static final long serialVersionUID = 1L;

@EmbeddedId
private FooErrorId id;

@Column(name = "descripcion")
private String description;

//Getters&& setters
}

我的错误 ID 类:

@Embeddable
public class FooErrorId implements Serializable {

private static final long serialVersionUID = 1L;

@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "foo_id", nullable = false)
private FooEntity foo;

@Enumerated(EnumType.STRING)
@Column(name = "type")
private ErrorType type;

//getters&setters
}

在我的 Controller 中,我会检查错误并将其添加到列表中:

@RequestMapping(方法= RequestMethod.POST)public final String saveFoo(@ModelAttribute("foo") FooEnntity foo) {

//My checks... and add the errors

FooErrorEntity error1 = new FooErrorEntity();
error1.setDescription("Desc1");
FooErrorId errorId1 = new FooErrorId();
errorId1.setFoo(foo);
errorId1.setType(ErrorType.ERROR3);
error1.setId(errorId1);

foo.getErrors().add(error1);

fooService.save(foo);

return "view";

如果我正在编辑一个有错误的 FooEntity,我会得到这个错误:

Hibernate: select errors0_.foo_id as foo_id3_2_0_, errors0_.type as type1_2_0_, errors0_.foo_id as foo_id3_2_1_, errors0_.type as type1_2_1_, errors0_.descripcion as descripc2_2_1_ from fooerror errors0_ where errors0_.foo_id=? Hibernate: select fooentity0_.id as id1_1_1_, fooentity0_.param1 as param2_1_1_, errors1_.foo_id as foo_id3_2_3_, errors1_.type as type1_2_3_, errors1_.foo_id as foo_id3_2_0_, errors1_.type as type1_2_0_, errors1_.descripcion as descripc2_2_0_ from foo fooentity0_ left outer join fooerror errors1_ on fooentity0_.id=errors1_.foo_id where fooentity0_.id=? .... Hibernate: select fooentity0_.id as id1_1_1_, fooentity0_.param1 as param2_1_1_, errors1_.foo_id as foo_id3_2_3_, errors1_.type as type1_2_3_, errors1_.foo_id as foo_id3_2_0_, errors1_.type as type1_2_0_, errors1_.descripcion as descripc2_2_0_ from foo fooentity0_ left outer join fooerror errors1_ on fooentity0_.id=errors1_.foo_id where fooentity0_.id=? Hibernate: select fooentity0_.id as id1_1_1_, fooentity0_.param1 as param2_1_1_, errors1_.foo_id as foo_id3_2_3_, errors1_.type as type1_2_3_, errors1_.foo_id as foo_id3_2_0_, errors1_.type as type1_2_0_, errors1_.descripcion as descripc2_2_0_ from foo fooentity0_ left outer join fooerror errors1_ on fooentity0_.id=errors1_.foo_id where fooentity0_.id=? Hibernate: select fooentity0_.id as id1_1_1_, fooentity0_.param1 as param2_1_1_, errors1_.foo_id as foo_id3_2_3_, errors1_.type as type1_2_3_, errors1_.foo_id as foo_id3_2_0_, errors1_.type as type1_2_0_, errors1_.descripcion as descripc2_2_0_ from foo fooentity0_ left outer join fooerror errors1_ on fooentity0_.id=errors1_.foo_id where fooentity0_.id=? mar 01, 2016 9:15:57 PM org.apache.catalina.core.StandardWrapperValve invoke GRAVE: El Servlet.service() para el servlet [dispatcher] en el contexto con ruta [/springMVC] lanzó la excepción [Handler processing failed; nested exception is java.lang.StackOverflowError] con causa raíz java.lang.StackOverflowError    at com.mysql.jdbc.Util.handleNewInstance(Util.java:428)     at com.mysql.jdbc.PreparedStatement.getInstance(PreparedStatement.java:834)     at com.mysql.jdbc.ConnectionImpl.clientPrepareStatement(ConnectionImpl.java:1573)   at com.mysql.jdbc.ConnectionImpl.prepareStatement(ConnectionImpl.java:4591)     at com.mysql.jdbc.ConnectionImpl.prepareStatement(ConnectionImpl.java:4489)

at org.apache.commons.dbcp.DelegatingConnection.prepareStatement(DelegatingConnection.java:281) at org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.prepareStatement(PoolingDataSource.java:313) at org.hibernate.engine.jdbc.internal.StatementPreparerImpl$5.doPrepare(StatementPreparerImpl.java:146) at org.hibernate.engine.jdbc.internal.StatementPreparerImpl$StatementPreparationTemplate.prepareStatement(StatementPreparerImpl.java:172) at org.hibernate.engine.jdbc.internal.StatementPreparerImpl.prepareQueryStatement(StatementPreparerImpl.java:148) at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1928) at org.hibernate.loader.Loader.executeQueryStatement(Loader.java:1897) at org.hibernate.loader.Loader.executeQueryStatement(Loader.java:1875) at org.hibernate.loader.Loader.doQuery(Loader.java:919) at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:336) at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:306) at org.hibernate.loader.Loader.loadEntity(Loader.java:2198) at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:60) at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:50) at org.hibernate.persister.entity.AbstractEntityPersister.load(AbstractEntityPersister.java:3956) at org.hibernate.event.internal.DefaultLoadEventListener.loadFromDatasource(DefaultLoadEventListener.java:508) at org.hibernate.event.internal.DefaultLoadEventListener.doLoad(DefaultLoadEventListener.java:478) at org.hibernate.event.internal.DefaultLoadEventListener.load(DefaultLoadEventListener.java:219) 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:1129) at org.hibernate.internal.SessionImpl.internalLoad(SessionImpl.java:1022) at org.hibernate.type.EntityType.resolveIdentifier(EntityType.java:632) at org.hibernate.type.EntityType.resolve(EntityType.java:424) at org.hibernate.type.ComponentType.resolve(ComponentType.java:687) at org.hibernate.loader.Loader.extractKeysFromResultSet(Loader.java:848) at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:714) at org.hibernate.loader.Loader.processResultSet(Loader.java:972) at org.hibernate.loader.Loader.doQuery(Loader.java:930) at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:336) at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:306) at org.hibernate.loader.Loader.loadEntity(Loader.java:2198) at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:60) at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:50) at org.hibernate.persister.entity.AbstractEntityPersister.load(AbstractEntityPersister.java:3956) at org.hibernate.event.internal.DefaultLoadEventListener.loadFromDatasource(DefaultLoadEventListener.java:508) at org.hibernate.event.internal.DefaultLoadEventListener.doLoad(DefaultLoadEventListener.java:478) at org.hibernate.event.internal.DefaultLoadEventListener.load(DefaultLoadEventListener.java:219) 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:1129)


at org.hibernate.internal.SessionImpl.internalLoad(SessionImpl.java:1022) at org.hibernate.type.EntityType.resolveIdentifier(EntityType.java:632) at org.hibernate.type.EntityType.resolve(EntityType.java:424) at org.hibernate.type.ComponentType.resolve(ComponentType.java:687) at org.hibernate.loader.Loader.extractKeysFromResultSet(Loader.java:848) at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:714) at org.hibernate.loader.Loader.processResultSet(Loader.java:972) at org.hibernate.loader.Loader.doQuery(Loader.java:930) at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:336) at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:306) at org.hibernate.loader.Loader.loadEntity(Loader.java:2198) at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:60) at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:50) at org.hibernate.persister.entity.AbstractEntityPersister.load(AbstractEntityPersister.java:3956) at org.hibernate.event.internal.DefaultLoadEventListener.loadFromDatasource(DefaultLoadEventListener.java:508) at org.hibernate.event.internal.DefaultLoadEventListener.doLoad(DefaultLoadEventListener.java:478) at org.hibernate.event.internal.DefaultLoadEventListener.load(DefaultLoadEventListener.java:219) 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:1129) at org.hibernate.internal.SessionImpl.internalLoad(SessionImpl.java:1022) at org.hibernate.type.EntityType.resolveIdentifier(EntityType.java:632) at org.hibernate.type.EntityType.resolve(EntityType.java:424) at org.hibernate.type.ComponentType.resolve(ComponentType.java:687) at org.hibernate.loader.Loader.extractKeysFromResultSet(Loader.java:848) at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:714) at org.hibernate.loader.Loader.processResultSet(Loader.java:972) at org.hibernate.loader.Loader.doQuery(Loader.java:930) at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:336) at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:306) at org.hibernate.loader.Loader.loadEntity(Loader.java:2198) at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:60) at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:50) at org.hibernate.persister.entity.AbstractEntityPersister.load(AbstractEntityPersister.java:3956) at org.hibernate.event.internal.DefaultLoadEventListener.loadFromDatasource(DefaultLoadEventListener.java:508) at org.hibernate.event.internal.DefaultLoadEventListener.doLoad(DefaultLoadEventListener.java:478) at org.hibernate.event.internal.DefaultLoadEventListener.load(DefaultLoadEventListener.java:219) 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:1129)

at org.hibernate.internal.SessionImpl.internalLoad(SessionImpl.java:1022) at org.hibernate.type.EntityType.resolveIdentifier(EntityType.java:632) at org.hibernate.type.EntityType.resolve(EntityType.java:424) at org.hibernate.type.ComponentType.resolve(ComponentType.java:687) at org.hibernate.loader.Loader.extractKeysFromResultSet(Loader.java:848) at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:714) at org.hibernate.loader.Loader.processResultSet(Loader.java:972) at org.hibernate.loader.Loader.doQuery(Loader.java:930) at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:336) at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:306) at org.hibernate.loader.Loader.loadEntity(Loader.java:2198) at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:60) at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:50) at org.hibernate.persister.entity.AbstractEntityPersister.load(AbstractEntityPersister.java:3956) at org.hibernate.event.internal.DefaultLoadEventListener.loadFromDatasource(DefaultLoadEventListener.java:508) at org.hibernate.event.internal.DefaultLoadEventListener.doLoad(DefaultLoadEventListener.java:478) at org.hibernate.event.internal.DefaultLoadEventListener.load(DefaultLoadEventListener.java:219) 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:1129) at org.hibernate.internal.SessionImpl.internalLoad(SessionImpl.java:1022) at org.hibernate.type.EntityType.resolveIdentifier(EntityType.java:632) at org.hibernate.type.EntityType.resolve(EntityType.java:424) at org.hibernate.type.ComponentType.resolve(ComponentType.java:687) at org.hibernate.loader.Loader.extractKeysFromResultSet(Loader.java:848) at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:714) at org.hibernate.loader.Loader.processResultSet(Loader.java:972) at org.hibernate.loader.Loader.doQuery(Loader.java:930) at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:336) at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:306) at org.hibernate.loader.Loader.loadEntity(Loader.java:2198) at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:60) at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:50) at org.hibernate.persister.entity.AbstractEntityPersister.load(AbstractEntityPersister.java:3956) at org.hibernate.event.internal.DefaultLoadEventListener.loadFromDatasource(DefaultLoadEventListener.java:508) at org.hibernate.event.internal.DefaultLoadEventListener.doLoad(DefaultLoadEventListener.java:478) at org.hibernate.event.internal.DefaultLoadEventListener.load(DefaultLoadEventListener.java:219) 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:1129) at org.hibernate.internal.SessionImpl.internalLoad(SessionImpl.java:1022) at org.hibernate.type.EntityType.resolveIdentifier(EntityType.java:632) at org.hibernate.type.EntityType.resolve(EntityType.java:424) at org.hibernate.type.ComponentType.resolve(ComponentType.java:687) at org.hibernate.loader.Loader.extractKeysFromResultSet(Loader.java:848) at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:714) at org.hibernate.loader.Loader.processResultSet(Loader.java:972) at org.hibernate.loader.Loader.doQuery(Loader.java:930) at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:336) at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:306) at org.hibernate.loader.Loader.loadEntity(Loader.java:2198) at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:60) at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:50) at org.hibernate.persister.entity.AbstractEntityPersister.load(AbstractEntityPersister.java:3956) at org.hibernate.event.internal.DefaultLoadEventListener.loadFromDatasource(DefaultLoadEventListener.java:508) at org.hibernate.event.internal.DefaultLoadEventListener.doLoad(DefaultLoadEventListener.java:478) at org.hibernate.event.internal.DefaultLoadEventListener.load(DefaultLoadEventListener.java:219) 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:1129) at org.hibernate.internal.SessionImpl.internalLoad(SessionImpl.java:1022) at org.hibernate.type.EntityType.resolveIdentifier(EntityType.java:632) at org.hibernate.type.EntityType.resolve(EntityType.java:424) at org.hibernate.type.ComponentType.resolve(ComponentType.java:687) at org.hibernate.loader.Loader.extractKeysFromResultSet(Loader.java:848) at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:714) at org.hibernate.loader.Loader.processResultSet(Loader.java:972) at org.hibernate.loader.Loader.doQuery(Loader.java:930) at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:336) at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:306) at org.hibernate.loader.Loader.loadEntity(Loader.java:2198) at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:60) at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:50) at org.hibernate.persister.entity.AbstractEntityPersister.load(AbstractEntityPersister.java:3956) at org.hibernate.event.internal.DefaultLoadEventListener.loadFromDatasource(DefaultLoadEventListener.java:508) at org.hibernate.event.internal.DefaultLoadEventListener.doLoad(DefaultLoadEventListener.java:478) at org.hibernate.event.internal.DefaultLoadEventListener.load(DefaultLoadEventListener.java:219) 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:1129) at org.hibernate.internal.SessionImpl.internalLoad(SessionImpl.java:1022) at org.hibernate.type.EntityType.resolveIdentifier(EntityType.java:632) at org.hibernate.type.EntityType.resolve(EntityType.java:424) at org.hibernate.type.ComponentType.resolve(ComponentType.java:687) at org.hibernate.loader.Loader.extractKeysFromResultSet(Loader.java:848) at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:714) at org.hibernate.loader.Loader.processResultSet(Loader.java:972) at org.hibernate.loader.Loader.doQuery(Loader.java:930) at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:336) at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:306) at org.hibernate.loader.Loader.loadEntity(Loader.java:2198) at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:60) at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:50) at org.hibernate.persister.entity.AbstractEntityPersister.load(AbstractEntityPersister.java:3956) at org.hibernate.event.internal.DefaultLoadEventListener.loadFromDatasource(DefaultLoadEventListener.java:508) at org.hibernate.event.internal.DefaultLoadEventListener.doLoad(DefaultLoadEventListener.java:478) at org.hibernate.event.internal.DefaultLoadEventListener.load(DefaultLoadEventListener.java:219) 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:1129) at org.hibernate.internal.SessionImpl.internalLoad(SessionImpl.java:1022) at org.hibernate.type.EntityType.resolveIdentifier(EntityType.java:632) at org.hibernate.type.EntityType.resolve(EntityType.java:424) at org.hibernate.type.ComponentType.resolve(ComponentType.java:687) at org.hibernate.loader.Loader.extractKeysFromResultSet(Loader.java:848) at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:714) at org.hibernate.loader.Loader.processResultSet(Loader.java:972) at org.hibernate.loader.Loader.doQuery(Loader.java:930) at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:336) at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:306) at org.hibernate.loader.Loader.loadEntity(Loader.java:2198) at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:60) at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:50) at org.hibernate.persister.entity.AbstractEntityPersister.load(AbstractEntityPersister.java:3956) at org.hibernate.event.internal.DefaultLoadEventListener.loadFromDatasource(DefaultLoadEventListener.java:508) at org.hibernate.event.internal.DefaultLoadEventListener.doLoad(DefaultLoadEventListener.java:478) at org.hibernate.event.internal.DefaultLoadEventListener.load(DefaultLoadEventListener.java:219) 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:1129) at org.hibernate.internal.SessionImpl.internalLoad(SessionImpl.java:1022) at org.hibernate.type.EntityType.resolveIdentifier(EntityType.java:632) at org.hibernate.type.EntityType.resolve(EntityType.java:424) at org.hibernate.type.ComponentType.resolve(ComponentType.java:687) at org.hibernate.loader.Loader.extractKeysFromResultSet(Loader.java:848) at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:714) at org.hibernate.loader.Loader.processResultSet(Loader.java:972) at org.hibernate.loader.Loader.doQuery(Loader.java:930) at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:336) at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:306) at org.hibernate.loader.Loader.loadEntity(Loader.java:2198) at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:60) at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:50) at org.hibernate.persister.entity.AbstractEntityPersister.load(AbstractEntityPersister.java:3956) at org.hibernate.event.internal.DefaultLoadEventListener.loadFromDatasource(DefaultLoadEventListener.java:508) at org.hibernate.event.internal.DefaultLoadEventListener.doLoad(DefaultLoadEventListener.java:478) at org.hibernate.event.internal.DefaultLoadEventListener.load(DefaultLoadEventListener.java:219) 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:1129) at org.hibernate.internal.SessionImpl.internalLoad(SessionImpl.java:1022) at org.hibernate.type.EntityType.resolveIdentifier(EntityType.java:632) at org.hibernate.type.EntityType.resolve(EntityType.java:424) at org.hibernate.type.ComponentType.resolve(ComponentType.java:687) at org.hibernate.loader.Loader.extractKeysFromResultSet(Loader.java:848) at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:714) at org.hibernate.loader.Loader.processResultSet(Loader.java:972) at org.hibernate.loader.Loader.doQuery(Loader.java:930) at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:336) at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:306) at org.hibernate.loader.Loader.loadEntity(Loader.java:2198) at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:60) at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:50) at org.hibernate.persister.entity.AbstractEntityPersister.load(AbstractEntityPersister.java:3956) at org.hibernate.event.internal.DefaultLoadEventListener.loadFromDatasource(DefaultLoadEventListener.java:508) at org.hibernate.event.internal.DefaultLoadEventListener.doLoad(DefaultLoadEventListener.java:478) at org.hibernate.event.internal.DefaultLoadEventListener.load(DefaultLoadEventListener.java:219) 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:1129) at org.hibernate.internal.SessionImpl.internalLoad(SessionImpl.java:1022) at org.hibernate.type.EntityType.resolveIdentifier(EntityType.java:632) at org.hibernate.type.EntityType.resolve(EntityType.java:424) at org.hibernate.type.ComponentType.resolve(ComponentType.java:687) at org.hibernate.loader.Loader.extractKeysFromResultSet(Loader.java:848) at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:714) at org.hibernate.loader.Loader.processResultSet(Loader.java:972) at org.hibernate.loader.Loader.doQuery(Loader.java:930) at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:336) at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:306) at org.hibernate.loader.Loader.loadEntity(Loader.java:2198) at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:60) at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:50) at org.hibernate.persister.entity.AbstractEntityPersister.load(AbstractEntityPersister.java:3956) at org.hibernate.event.internal.DefaultLoadEventListener.loadFromDatasource(DefaultLoadEventListener.java:508) at org.hibernate.event.internal.DefaultLoadEventListener.doLoad(DefaultLoadEventListener.java:478) at org.hibernate.event.internal.DefaultLoadEventListener.load(DefaultLoadEventListener.java:219) 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:1129) at org.hibernate.internal.SessionImpl.internalLoad(SessionImpl.java:1022) at org.hibernate.type.EntityType.resolveIdentifier(EntityType.java:632) at org.hibernate.type.EntityType.resolve(EntityType.java:424) at org.hibernate.type.ComponentType.resolve(ComponentType.java:687) at org.hibernate.loader.Loader.extractKeysFromResultSet(Loader.java:848) at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:714) at org.hibernate.loader.Loader.processResultSet(Loader.java:972) at org.hibernate.loader.Loader.doQuery(Loader.java:930) at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:336) at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:306) at org.hibernate.loader.Loader.loadEntity(Loader.java:2198) at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:60)

日志继续......我无限选择 foo 表

最佳答案

你有一个派生身份。

FooEntity.errors 应该“映射到”foo:

public class FooEntity implements Serializable {
...
@OneToMany(fetch = FetchType.LAZY, mappedBy = "foo", cascade = CascadeType.ALL)
List<FooErrorEntity> errors;
...
}

FooErrorEntity 的关系 foo 应该移出 @EmbeddedId 并移入 @Entity 本身它应该指定一个 @MapsId:

@Entity
@Table(name = "fooerror")
public class FooErrorEntity implements Serializable {

private static final long serialVersionUID = 1L;

@EmbeddedId
private FooErrorId id;

@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "foo_id", nullable = false)
@MapsId("fooId") // maps fooId attribute of the embedded id
private FooEntity foo;

@Column(name = "descripcion")
private String description;

...
}

并且 FooErrorIdfoo 应该替换为类型对应于 FooEntity 的主要类型的 fooId key 类型:

@Embeddable
public class FooErrorId implements Serializable {

private static final long serialVersionUID = 1L;

private Integer fooId; // type corresponds to FooEntity's id

@Enumerated(EnumType.STRING)
@Column(name = "type")
private ErrorType type;

...
}

派生身份在 JPA 2.1 规范的第 2.4.1 节中进行了讨论。

关于java - StackOverflowError 与@EmbeddedId,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35733058/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com