草庐IT

data-collection

全部标签

java - Spring Data REST + JPA 从 OneToMany 集合中删除 [不是所有者端]

目前我们有一个问题(一个众所周知的问题)SpringDataJPA+SpringDataREST(HibernateasJPA实现)在尝试更新不是拥有方的集合(关系)时。映射如下:@Entity(name=Product.NAME)publicclassProduct{...@OneToMany(mappedBy="baseProduct",fetch=FetchType.LAZY,targetEntity=Variant.class)ListgetVariants(){...在另一个变体方面:@Entity(name=Variant.NAME)publicclassVariantex

java - 使用 Google Collections 创建弱多图

是否有与MultiMaps的漂亮MapMaker等效的工具?目前我这样创建缓存:publicstaticMap>personCache=newMapMaker().weakKeys().makeMap();MultiMap的全部要点是避免嵌套的列表值。有什么方法可以用弱键构造多映射? 最佳答案 不幸的是没有。然而。您可以在我们的问题数据库中提交MultimapMaker功能请求吗?http://google-collections.googlecode.com 关于java-使用Goog

java - 用于类继承的 Spring Data MongoDb

我想将不同的数据存储到MongoDb中的一个集合中,并让Spring数据bean具有适当的字段..抱歉,我跳过了细节。父bean:classAintachildren:classBextendsAdoublebclassCextendsAStringc所以,在mongo中有如下文档{a:1,b:2.3,c:"Test"}当我获取数据时,没问题。但是,当我从CrudRepository为B调用save方法时,它重写了所有数据,我丢失了C。我只知道一个不错的选择来创建带有增量更新的自定义保存方法,例如update.set("b",newvalue)...但有反射(reflection)。你

java - Lombok @Getter 和 Collections 的副本

在List字段上使用@Getter工作正常,但是在尝试升级到Java8时我遇到了ConcurrentModificationException,因为getter生成Lombok不执行字段的复制,如果您希望防止实例状态的外部修改,这是必不可少的。关于如何让Lombok在getter上复制Collection的任何想法,或者我只能自己编写吗? 最佳答案 来自@Getterand@Setter文档:Youcanannotateanyfieldwith@Getterand/or@Setter,toletlombokgeneratethede

java - 在 Spring Data JPA 中使用注释连接两个以上的表

我有三个实体:A、B和C,它们之间的关系如下:classA{@ManyToManyListbs;//otherattributesandgettersetters}classB{@ManyToManyListcs;//otherattributesandgettersetters}classC{//otherattributesandgettersetters}但是从我当前的实体类中,我可以使用@JoinTable在任意2个表之间建立关系。但我想要的是将所有3个实体之间的关系保存在一个单独的表中,将这些实体的主键作为列。(外键)如果我们假设实体B和C已经保存(插入)到数据库中,我将插入

java - 左加入 spring data jpa 和 querydsl

我正在使用springdatajpa和querydsl,并且陷入了如何编写简单的查询以左连接两个表的问题。假设我有一个Project实体和一个在Project中定义了OneToMany关系的Task实体,我想做类似的事情:select*fromprojectpleftjointasktonp.id=t.project_idwherep.id=searchTermselect*fromprojectpleftjointasktonp.id=t.project_idwheret.taskname=searchTerm在JPQL中,它应该是:selectdistinctpfromProjec

java - 如何在 spring-data 中使用 CrudRepository 强制预加载?

我有一个包含List的实体,因此默认加载lazy:interfaceMyEntityRepositoryextendsCrudRepository{}@EntitypublicclassMyEntity{@IdprivateLongid;@OneToMany(mappedBy="bar")//lazybydefaultprivateListbars;}@EntitypublicclassBar{//somemore}问题:如何在执行repository.findOne(id)时强制预加载? 最佳答案 您可以使用leftjoinfet

java - 手动分配 ID 时,Spring Data MongoDB 注释 @CreatedDate 不起作用

我正在尝试使用审计在我的对象中保存dateCreated和dateUpdated,但是由于我手动设置了ID,所以还有一些额外的工作。遵循OliverGierke在DATAMONGO-946中的建议我正在尝试弄清楚如何正确实现它。作为上述Jira任务中的原始发布者,我从这里下载了示例https://github.com/spring-guides/gs-accessing-data-mongodb.git并对其进行了一些修改:packagehello;importorg.springframework.data.annotation.CreatedDate;importorg.sprin

java - Collection 内容从未在 Intellij IDEA 中更新警告

我创建了一个简单的Counter类:publicclassCounterextendsHashMap{publicCounter(){}publicvoidincrease(Tkey){put(key,getOrDefault(key,0l)+1);}}在我的代码中,我调用了increase()方法,然后使用Map方法访问数据,例如Countercounter=newCounter();for(Integeri:...somecollection...)counter.increase(i);Intellij使用警告颜色突出显示counter的声明(最后一段的第一行),工具提示消息显示

java - Spring Data Neo4j 4 中的分页和排序

SDN4中的自定义查询是否支持分页?如果是,它是如何工作的?如果没有,是否有变通办法?我有以下SpringDataNeo4j4存储库:@RepositorypublicinterfaceTopicRepositoryextendsGraphRepository,IAuthorityLookup{//othermethodsomitted@Query("MATCH(t:Topic)-[:HAS_OFFICER]->(u:User)"+"WHEREt.id={0}"+"RETURNu")publicPagetopicOfficers(LongtopicId,Pageablepageable