public interface CriterionRepository extends JpaRepository<Criterion, Long> {
}
@Entity
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
public abstract class Criterion extends AbstractEntity {}
@Entity
public class NameCriterion extends Criterion {
private final String name;
}
Spring Data REST将存储库导出为REST资源,您可以在http://localhost:8080/api/criterial/上访问它
导出的资源如下所示:
{
"_embedded": {
"nameCriteria": [{
"_links": {
"self": {
"href": "http://localhost:8080/api/nameCriterion/1"
},
"nameCriterion": {
"href": "http://localhost:8080/api/nameCriterion/1"
}
}
}
]
},
"_links": {
"self": {
"href": "http://localhost:8080/api/criteria"
},
"profile": {
"href": "http://localhost:8080/api/profile/criteria"
}
},
"page": {
"size": 20,
"totalElements": 1,
"totalPages": 1,
"number": 0
}
}
当我尝试跟踪self链接时,没有http://localhost:8080/api/namecriterion/1的映射
{
"_links": {
"self": {
"href": "http://localhost:8080/api/nameCriterion/1"
},
"nameCriterion": {
"href": "http://localhost:8080/api/nameCriterion/1"
}
}
}
换句话说,我应该创建什么Jackson模块?
不需要创建Jackson模块。要为继承的实体使用单个表,我们可以使用@RestResource注释将它们标记为相同的资源:
@Entity
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@Table(name = "criteria")
public abstract class Criterion extends AbstractEntity {
}
@RestResource(rel = "criteria", path = "criteria")
@Entity
public class NameCriterion extends Criterion {
private String name;
}
@RestResource(rel = "criteria", path = "criteria")
@Entity
public class TitleCriterion extends Criterion {
private String title;
}
@RepositoryRestResource(path = "criteria", collectionResourceRel = "criteria", itemResourceRel = "criterion")
public interface CriterionRepository extends JpaRepository<Criterion, Long> {
}
因此可以在一个输出中获得所有资源(NameCriterion和TitleCriterion):
json prettyprint-override">GET http://localhost:8080/api/criteria
{
"_embedded": {
"criteria": [
{
"name": "name1",
"_links": {
"self": {
"href": "http://localhost:8080/api/criteria/1"
},
"nameCriterion": {
"href": "http://localhost:8080/api/criteria/1"
}
}
},
{
"title": "title1",
"_links": {
"self": {
"href": "http://localhost:8080/api/criteria/2"
},
"titleCriterion": {
"href": "http://localhost:8080/api/criteria/2"
}
}
}
]
}
}
GET http://localhost:8080/api/criteria/1
{
"name": "name1",
"_links": {
"self": {
"href": "http://localhost:8080/api/criteria/1"
},
"nameCriterion": {
"href": "http://localhost:8080/api/criteria/1"
}
}
}
GET http://localhost:8080/api/criteria/2
{
"title": "title1",
"_links": {
"self": {
"href": "http://localhost:8080/api/criteria/2"
},
"titleCriterion": {
"href": "http://localhost:8080/api/criteria/2"
}
}
}
工作实例。
假设有一个具有属性a的抽象类A和三个非抽象子类B、C和D。B没有附加属性,C包含属性c,D包含属性c和d。 我想为抽象类A的子类StdDeserializer能够根据要反序列化的属性的存在来决定选择哪个子类。 我以前用Codehaus的一些Jackson版本做到了这一点,它使用以下实现运行良好: 这很好,但从FasterXML ObjectMapper迁移到Jackson 2.4后,不允许Obje
问题内容: 谁能用我的2.10 Scala模块指向一个简单的Jackson序列化/反序列化示例?我正在寻找不需要逐字段注释或分配的基于反射的JSON,这似乎可以做到这一点,但是他们的文档中没有示例。 如果我有案例课: 因此,从他们的github自述文件中: 好吧,现在…?如何将p转换为JSON? 问题答案: 试一下: 编辑 只需确保将类声明为顶级即可,否则它将无法正常工作。
web3.modules属性返回一个包含所有子模块类的对象,可以用来 手工实例化这些子模块类。 调用方法: Web3.modules web3.modules 返回值: Object: 子模块列表: Eth - Function: Eth模块类,用来与以太坊网络进行交互。参见web3.eth。 Net - Function: Net模块类,用来与网络属性进行交互。参见web3.eth.net。
在本章中,我们将研究Drupal中的Aggregator Module 。 聚合器模块从其他网站获取内容,但不生成任何源。 它也被称为饲料阅读器。 它收集并显示来自其他网站和博客的文本和图像。 以下是启用聚合器模块的步骤。 Step 1 - 单击菜单栏中的Modules 。 Step 2 - 显示不同模块的列表。 启用Aggregator模块,然后单击Save Configuration ,如以下
看 pnpm 官网文档的时候有一个疑惑 https://pnpm.io/zh/symlinked-node-modules-structure pnpm 这里的 node module resolve 算法怎么理解呢。在 foo 中 require bar,如果说因为 .pnpm/foo@1.0.0/node_modules/bar 是软链所以被忽略的话,根据 node 模块查找算法,不应该开始查
包基础 包是方法的集合 具有自己的命名空间 包方法能被导出或直接调用 Foo::bar() Foo->bar() bar() (如果 Foo 已导出它) 模块基础 模块是包含一个或多个包的文件 多数人交替使用模块和包 对象基础 对象是被 bless 的哈希引用(不必是哈希引用,但它最常见) bless 将单个类赋给对象 对象可被重新 bless 1; 模块必须以真值结束 不必是 1 包没有相同的