使用Spring Data REST,如果您有一个OneToMany
或一个ManyToOne
关系,PUT操作会在"非拥有"实体上返回200,但实际上并不会保留已连接的资源.
示例实体:
@Entity(name = 'author')
@ToString
class AuthorEntity implements Author {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
Long id
String fullName
@ManyToMany(mappedBy = 'authors')
Set<BookEntity> books
}
@Entity(name = 'book')
@EqualsAndHashCode
class BookEntity implements Book {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
Long id
@Column(nullable = false)
String title
@Column(nullable = false)
String isbn
@Column(nullable = false)
String publisher
@ManyToMany(fetch = FetchType.LAZY, cascade = [CascadeType.ALL])
Set<AuthorEntity> authors
}
Run Code Online (Sandbox Code Playgroud)
如果您使用a来支持它们PagingAndSortingRepository
,您可以获取a Book
,按照authors
书上的链接进行PUT,并使用要关联的作者的URI.你不能走另一条路.
如果您对作者执行GET并在其books
链接上执行PUT …
java spring-data spring-data-jpa spring-data-rest spring-boot
有没有办法配置isolate_namespace
方法不使用前缀表名?
class Engine < ::Rails::Engine
isolate_namespace MyEngine
end
Run Code Online (Sandbox Code Playgroud)
此外,隔离引擎将根据命名空间设置其名称,因此MyEngine :: Engine.engine_name将为"my_engine".它还会将MyEngine.table_name_prefix设置为"my_engine_",将MyEngine :: Article模型更改为使用my_engine_articles表.孤立的引擎文档
在设计原型时,我遇到了一个问题,我需要使用隔离命名空间模式的路由,但数据库表没有.这是因为我正在编写的可安装引擎拥有自己的自包含数据库.
如果不可能的话,不想进一步挖掘.
我有许多使用Spring Boot构建的微服务,所以为了一点乐趣,我想我会为他们添加HATEOAS以帮助建立跨资源链接.它似乎在一个特定的项目中工作得很好,但我想知道是否有一种很好的方式来链接API.举个例子,假设我有3个服务:
用户详细信息服务:代码:
/users/{userid}
Run Code Online (Sandbox Code Playgroud)
用户日历服务:代码:
/users/{userid}/appointments
/users/{userid}/appointments/{appointmentid}
Run Code Online (Sandbox Code Playgroud)
用户消息服务:代码:
/users/{userid}/messages
/users/{userid}/messages/{messageid}
Run Code Online (Sandbox Code Playgroud)
为了通过API实现这一点,最好是从用户资源到其约会和消息的链接.同样,从这些资源返回链接会很不错.当我有一个包含类路径上的所有内容的API时,这是非常可行的,我可以编写如下代码:
码:
user.add(linkTo(methodOn(CalendarController.class).appointments(user.getKey())).withRel("appointments"))
Run Code Online (Sandbox Code Playgroud)
但是,如果CalendarController不在我正在服务的服务的类路径上,我就无法做到这一点.
有没有一个好的/推荐的方法来创建不在当前项目中的控制器的链接?
从春季论坛引用
有没有人知道如果将协议设置为AjpNioProtocol,Tomcat版本7.0.27 AJP Connecter是否可以支持http升级(websockets). http://tomcat.apache.org/tomcat-7.0-doc/config/ajp.html#Connector_Comparison
我正在使用大气,但即使有一个基本的套接字请求,客户端websocket也会关闭.Atmo错误:连接已关闭,未发送关闭帧.
java ×2
spring-boot ×2
ajp ×1
atmosphere ×1
hateoas ×1
spring ×1
spring-data ×1
tomcat ×1
websocket ×1