Tag: spring data

Spring Data返回List

我有这个存储库: @Repository public interface ProductRepository extends JpaRepository{ @Query(“SELECT p.textToSearch as text, count(*) as counter FROM Product p GROUP BY text_to_search ORDER BY counter DESC”) List findTopProducts(); } TopProductDTO类的位置是: public class TopProductDTO { public TopProductDTO() {} private String text; private Integer counter; // Getters and Setters are omited } 但是当我执行代码时 List topProducts = productRepository.findTopProducts(); 它返回一个 List […]

使用SpringBoot和Hibernate与复合pks的双向@OneToMany关系

我的应用程序中现有的父子关系最近变得更加复杂,因为我们在父级和子级的主键上添加了“类型”列。 在此之后,添加,阅读和修改儿童效果很好,但删除它们是一种痛苦。 使用Vlad Mihalcea在本文中给出的关于@OneToMany关系的建议以及关于复合键的各种示例,我尝试了类似于以下模型的实现。 但是,删除孩子仍然无法正常工作,我现在有一个奇怪的错误消息作为奖励。 我使用的是Spring Boot 1.4.1和Hibernate 5.1.9.Final。 案子 Parent实体具有@EmbeddedId ParentPK,其中包含两个字段以及Cascade.ALL和orphanRemoval设置为true的orphanRemoval 。 亲 @Entity @Table(name = “z_parent”) public class Parent { @EmbeddedId private ParentPK pk; @OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL, orphanRemoval = true) @JoinColumns({ @JoinColumn(name = “parent_code”, referencedColumnName = “code”), @JoinColumn(name = “parent_type”, referencedColumnName = “type”) }) List children = new ArrayList(); public […]

Junit:为删除实体的方法编写测试?

对于下面的代码,我可以编写哪些最详尽的测试? public void deleteFromPerson(person person) { person = personRepository.returnPerson(person.getId()); personRepository.delete(person); } 此方法位于a service类中。 该方法调用JpaRepository ,然后在实体上调用它的delete()方法。 如果无法测试实体是否被删除,是否还有其他 tests cases可以在该方法上运行?

Spring Data Rest:在一对多关系中调用post后,外键更新为null

我正在使用spring-data-rest 。 update和daily_update是2表,它有一对多的关系。 使用spring boot运行此应用程序。 当我使用post请求添加数据时,条目被添加到两个表中而没有任何错误,但在子表(daily_update)列“update_id”(更新表的外键)将变为null 。 我使用Lombok作为setter和getter。 你能帮我解决这个问题吗? UpdateEntity类: @Data @Entity @Table(name = “update”) public class UpdateEntity { @Id @Column(name = “id”) @GeneratedValue(generator = “UUID”) @GenericGenerator(name = “UUID”, strategy = “org.hibernate.id.UUIDGenerator”) private String id; @JsonFormat(pattern = “yyyy-MM-dd HH:mm:ss”) @Column(name = “start_time”) private Date startTime; @JsonFormat(pattern = “yyyy-MM-dd HH:mm:ss”) @Column(name = “end_time”) private Date endTime; […]

如何使用Spring Boot将H2连接到远程数据库而不是嵌入模式?

对于我的小型Spring Boot应用程序,我在src / main / resources下有这个配置: server.port = 8090 spring.datasource.driverClassName = org.h2.Driver spring.datasource.url = jdbc:h2:file:~/stapler 我知道此配置已正确选取,因为应用程序启动日志中存在有效的端口号8090。 还有一个@PostConstruct initDb()方法,它创建数据并将数据插入该数据库的2个表中: package com.avk.stapler.init; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.jdbc.core.JdbcTemplate; import javax.annotation.PostConstruct; @SpringBootApplication public class DbInitializer { @Autowired private JdbcTemplate jdbcTemplate; public static void main(String[] args) { SpringApplication.run(DbInitializer.class, args); } @PostConstruct private void initDb() { System.out.println(“Creating table […]

Spring Data Neo4j可分页

我有一个Spring Data Repository接口,它使用自定义查询从数据库中获取节点集合: 存储库方法: @Query (“START r = node({0}) MATCH r <-[:AUTHOR]- m RETURN m") public Page findObjectById (long objectId,Pageable pageable); 方法调用 custRepository.findObjectById (4,new PageRequest(0, 5)); 这将返回一个对象集合,但页面信息不正确。 数据库中有足够的数据供我获取多页数据。 第一页信息说有: Current Page #: 0 Total Pages: 1 Is First Page: true Is last Page: true 但是,当我获取第二页时,我仍然获得其他对象的集合,然后页面信息变为: Current Page #: 1 Total Pages: 6 Is First Page: […]

使用java.util.Currency的Mongo spring-data问题

获取错误“在实体类java.util.Currency上找不到属性null” 嗨,我有文档类 @Document @JsonInclude(Include.NON_NULL) public class Course { @Id private String id; private String title; private Currency curr; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public Currency getCurr() { return […]

在spring-data-rest中阻止HTTP方法

我正在使用spring-data-rest。 给出以下存储库: @RepositoryRestResource public interface MyRepository extends PagingAndSortingRepository {} save()方法上的注释@RestResource(exported = false)使框架在使用POST,PUT和PATCH方法时返回405 Method Not Allowed错误。 我的问题:如何在PUT方法上返回405错误,而此存储库仍然允许POST和PATCH? 谢谢 !

spring-data-neo4j基本的一对多关系不会持续存在

编辑 : github上提供的示例项目。 我在我们的后端项目中使用Neo4J(Rest图形数据库,托管在grapheneDb中)和Spring Data。 我在两个实体之间有一个简单的一对多关系: User和Stay 。 编辑 :我认为这与该问题无关,但在SDN4中看到类似问题之后,我认为我需要更新问题(有一个基本的@NodeEntity类,两个实体都在扩展这个基类)。 @NodeEntity public abstract class BasicNodeEntity implements Serializable { @GraphId private Long nodeId; } public class User extends BasicNodeEntity { @RelatedTo(type = “HAS_STAY”, direction = Direction.OUTGOING) Set stays; public void addStay(Stay stay) { stays.add(stay); } } public class Stay extends BasicNodeEntity { @RelatedTo(type = “HAS_STAY”, direction […]

Maven使用spring-data-jpa和querydsl构建问题

我有一个针对spring-data-jpa和QueryDsl的Eclipse Maven项目。 我似乎有一个maven-apt-plugin的问题,如果我做一个mvn clean然后安装mvn,它会尝试“处理”引用QueryDsl生成文件的文件,但是这些生成的文件尚未构建,所以我得到多个“找不到符号”的错误。 如果那时必须再做一次mvn安装,一切都很好,因为现在生成的文件存在。 这个maven-apt-plugin是否需要处理我项目中的每个文件,或者我可以给它一个指定的目录吗? 注意:我使用的是JDK6,Eclipse Indigo,M2E 1.0.100 我的POM是…… …. com.mysema.maven maven-apt-plugin 1.0.2 generate-sources process target/generated-sources com.mysema.query.apt.jpa.JPAAnnotationProcessor ….