Java 如何为复杂的@Entity对象创建@Projection?
我想通过Java 如何为复杂的@Entity对象创建@Projection?,java,spring,spring-data-rest,spring-rest,Java,Spring,Spring Data Rest,Spring Rest,我想通过spring data rest公开一个非常复杂的@实体对象。因此,我试图创建一个简单的@Projection,首先只想公开实体的一个字段进行测试。但即便如此,这也失败了: @RepositoryRestResource(PersonProjection.class) interface PersonRepository extends PagingAndSortingRepository<Person, Long> (){ } @Entity public class
spring data rest
公开一个非常复杂的@实体
对象。因此,我试图创建一个简单的@Projection
,首先只想公开实体的一个字段进行测试。但即便如此,这也失败了:
@RepositoryRestResource(PersonProjection.class)
interface PersonRepository extends PagingAndSortingRepository<Person, Long> (){
}
@Entity
public class Person {
@Id
private long id;
private String name;
//many more properties
@ManyToOne
...
@OneToOne
...
}
@Projection(name = "personProjection", types = Person.class)
public interfaace PersonProjection {
String name();
}
问题:原因可能是什么?如何快速公开该类的一个简单字符串属性?您有循环数据引用吗?请参见错误:@hasnae yes,但我用
@RestResource(exported=false)@JsonIgnore
注释了每个子实体,另外我还创建了一个crudepository
。然而,这种无休止的循环仍然存在。
at org.springframework.data.rest.webmvc.mapping.LinkCollectingAssociationHandler.doWithAssociation(LinkCollectingAssociationHandler.java:101)
at org.springframework.data.mapping.model.BasicPersistentEntity.doWithAssociations(BasicPersistentEntity.java:352)
at org.springframework.data.rest.webmvc.mapping.LinkCollectingAssociationHandler.doWithAssociation(LinkCollectingAssociationHandler.java:101)
at org.springframework.data.mapping.model.BasicPersistentEntity.doWithAssociations(BasicPersistentEntity.java:352)
at org.springframework.data.rest.webmvc.mapping.LinkCollectingAssociationHandler.doWithAssociation(LinkCollectingAssociationHandler.java:101)
at org.springframework.data.mapping.model.BasicPersistentEntity.doWithAssociations(BasicPersistentEntity.java:352)
at org.springframework.data.rest.webmvc.mapping.LinkCollectingAssociationHandler.doWithAssociation(LinkCollectingAssociationHandler.java:101)
at org.springframework.data.mapping.model.BasicPersistentEntity.doWithAssociations(BasicPersistentEntity.java:352)
at org.springframework.data.rest.webmvc.mapping.LinkCollectingAssociationHandler.doWithAssociation(LinkCollectingAssociationHandler.java:101)
at org.springframework.data.mapping.model.BasicPersistentEntity.doWithAssociations(BasicPersistentEntity.java:352)
at org.springframework.data.rest.webmvc.mapping.LinkCollectingAssociationHandler.doWithAssociation(LinkCollectingAssociationHandler.java:101)
at org.springframework.data.mapping.model.BasicPersistentEntity.doWithAssociations(BasicPersistentEntity.java:352)
at org.springframework.data.rest.webmvc.mapping.LinkCollectingAssociationHandler.doWithAssociation(LinkCollectingAssociationHandler.java:101)
at org.springframework.data.mapping.model.BasicPersistentEntity.doWithAssociations(BasicPersistentEntity.java:352)
at org.springframework.data.rest.webmvc.mapping.LinkCollectingAssociationHandler.doWithAssociation(LinkCollectingAssociationHandler.java:101)
at org.springframework.data.mapping.model.BasicPersistentEntity.doWithAssociations(BasicPersistentEntity.java:352)
at org.springframework.data.rest.webmvc.mapping.LinkCollectingAssociationHandler.doWithAssociation(LinkCollectingAssociationHandler.java:101)