我在项目中使用Katharsis和弹簧靴,我的问题在于Katharsis-jpa。似乎katharsis忽略了@JsonApiResource注释,或者没有为指定的类型应用映射。
我目前有两个班级: 一个是我的实体用户:
@JsonApiResource(type = "users")
@Entity
@Table (name = "users")
@EqualsAndHashCode(of = "firstName")
@NoArgsConstructor
public class User {
@Getter
@Setter
@JsonApiId
@Id
@GeneratedValue (strategy = GenerationType.AUTO)
private Long id;
@Getter
@Setter
@Column
@JsonProperty (value = "last-name")
private String lastName;
@Getter
@Setter
@Column
@JsonProperty (value = "first-name")
private String firstName;
}
第二个是我的jpa存储库:
@Component
public class UserResourceRepository extends JpaEntityRepository<User, Long> {
@Autowired
public UserResourceRepository(JpaModule module) {
super(module, JpaRepositoryConfig.create(User.class));
}
}
然后我的application.properties文件如下:
katharsis:
resourcePackage: my_package_name
domainName: http://localhost:8080
pathPrefix: /api
jpa:
enabled: false
spring:
datasource:
driverClassName: org.postgresql.Driver
url: jdbc:postgresql://localhost:5432/my_db
username: my_user
password: my_password
jpa:
hibernate:
ddl-auto: update
show-sql: true
问题分为两部分: - 获取数据的网址:http://localhost:8080/users不起作用, - 进入json api序列化的字段是驼峰式而不是破折号
然后,如果没有katharsis-jpa模块(例如,使用简单的ResourceRepositoryBase),注释@JsonApiResource可以正常工作。
有人对此有所了解吗?