由于我的域类中存在不明确的关联,新添加的LinkCollectingAssociationHandler
正在引发MappingException
。
链接数组如下所示:
[
它试图在抛出异常时添加另一个“房间”关系。
问题是,它似乎添加了关系的链接,我已显式标记为
@RestResources(导出=false)
以下是一个我认为导致此问题的关系示例:
@JsonIgnore
@RestResource(exported = false)
@OneToMany(fetch = FetchType.LAZY, mappedBy = "pk.room", cascade = {CascadeType.REMOVE})
private Set<RoomsByUserAccessView> usersThatCanDisplay = new HashSet<>();
类型
RoomsByUserAccessView
具有由Room
和User
组成的嵌入式id。
我还用以下注释了embedded id属性:
@JsonIgnore
@RestResource(exported = false)
private RoomsByUserAccessViewId pk = new RoomsByUserAccessViewId();
其性质如下:
@JsonIgnore
@RestResource(exported = false)
private Room room;
@JsonIgnore
@RestResource(exported = false)
private User userWithAccess;
public RoomsByUserAccessViewId() {
//
}
如何让它在序列化到JSON时正确忽略这些关系?
我的代码在DATAREST-262(https://github.com/spring-projects/spring-data-rest/commit/1d53e84cae3d09b09c4b5a9a4caf438701527550)之前工作
尝试访问文件室/endpoint时返回的完整错误消息如下:
{时间戳:"2014-03-17T13:38:05.481-0500"错误:"内部服务器错误"状态: 500异常:"org.springframework.http.converter.HttpMessageNotWritableExc0019"消息:"无法写入JSON:检测到具有相同关系类型的多个关联链接!消除歧义关联@com.fasterxml.jackson.annotation.JsonIgnore(value=true)@javax.persistence.ManyToOne(读取=EAGER,级联=[],可选=true,目标实体=无效)@org.springframework.data.rest.core.annotation.RestResource(description=@org.springframework.data.rest.core.annotation.描述(value=),路径=,导出=false,rel=)私有com.renovo.schedulerapi.domain.房间com.renovo.schedulerapi.domain.RoomsByUserAccessViewId.room使用@RestResources!(通过引用链:org.springframework.hateoas.PagedResources[内容]-
我有这个问题,并按照罗恩的建议解决了它,但我想我应该解释一下。我头几次读罗恩的回答时并没有完全理解...
@NodeEntity
public class Player extends Entity
@NodeEntity
public class PlayerTrade extends Entity
@NodeEntity
public class Trade extends Entity
我有玩家和交易的存储库,但没有PlayerTrade的存储库:
@RepositoryRestResource
public interface PlayerRepository extends GraphRepository<Player> {
@RepositoryRestResource
public interface TradeRepository extends GraphRepository<Trade> {
我一加上最后一次回购,它就起了作用。
@RepositoryRestResource
public interface PlayerTradeRepository extends GraphRepository<PlayerTrade>
我尝试在rel或excluded中使用@RestResource,但无法拨入。这是否意味着JSON图中的每个实体都必须有一个存储库?
我有一个非常类似的问题。在两个实体之间添加双向关系时
我遇到异常“”,无法写入JSON:检测到多个具有相同属性的关联链接
关系类型!",同时尝试我在这里找到的一些解决方案
(@JsonIgnore、@JsonIdentity、@RestResource
,我也试着做奥利弗提供的事情)
(该关系已通过@JsonManaged参考
和@JsonBack参考
正确定义)
没有任何帮助。
最后,我设法理解了SpringDataREST正在尝试
确定相关实体是否可链接(在尝试构建
被请求实体)
(LinkCollectingAssociationHandler: doAnd Association-
为此,他正在寻找一个处理
相关实体。为相关实体添加存储库后。。很有魅力。。
(我假设在添加一个repo之后,映射repositoryawareersourceinformation正在生成
为这个实体创建的(这是我在调试时看到的)。
我想知道如何通过REST调用删除多对多关联。我能够创建记录并将其关联,但不知道如何删除。 我有一个SpringBoot项目,在这个项目中,我使用REST和HATEOAS绕过服务和控制器,并直接公开我的存储库。 我有一个用户模型/域类 如您所见,我有一个roles成员,它与Role类有多对多的关联,其代码如下: 我的仓库看起来是这样的: 用户库 角色还原 现在一切都好了。当我从浏览器访问项目根目录时
将HttpServletRequest或HttpServletResponse注入@RestController类中的@RequestMapping方法会导致异常(至少在@SpringBootTest注释启用测试中): 错误: 这是Spring的错误吗?我做错了吗?我几乎可以肯定地通过消除过程跟踪它到HttpServletRequest注入,而不是@Request estParamJSON(一种自
我在我的web应用程序中使用了Spring Boot1.5.7、Spring Data REST、Spring JPA、Hibernate、Spring HATEOAS、Spring Validation和Swagge。这个应用程序提供RESTendpoint,这些endpoint将由Angular客户机使用。 在我的模型中,许多实体都有一个列表。用户、车票、退票等有一个。根据我在网上找到的一些文
当创建新的实体关联时,是否有任何spring data rest事件处理程序可用?即。置入关联资源URL。 关联资源:http://docs.spring.io/spring-data/rest/docs/2.3.0.release/reference/html/#repository-resources.Association-resource
问题内容: 我有两组数据。现有客户和潜在客户。 我的主要目标是弄清楚是否有任何潜在客户已经是现有客户。但是,跨数据集的客户命名约定不一致。 现有客户 潜在客户 我想写一些如下所示的选择语句来达到我的目标: 结果如下所示: 我对Levenshtein距离和Double Metaphone的概念含糊其词,但我不确定如何在此处应用它。 理想情况下,我希望SELECT语句的JOIN部分读取类似以下内容:但
在使用@RepositoryRestResource将域对象导出到Rest时,如何在Java中创建Neo4j关系?