- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我尝试搜索但没有找到准确的解决方案。我有 Address
实体。对于每个新的地址请求,首先我想检查数据库中是否存在相同的地址。我的申请是针对仓库的,同一地址请求有可能会出现多次。
地址实体
@Entity
@NamedQuery(name="Address.findAll", query="SELECT a FROM Address a")
public class Address implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Integer id;
private String firstname;
private String lastname;
private String address1;
private String address2;
private String address3;
private String city;
private String postcode;
@JsonProperty(value="county")
private String state;
private String country;
private String telephoneno;
private String mobileno;
private String email;
//bi-directional many-to-one association to Collection
@OneToMany(mappedBy="address")
@JsonIgnore
private List<Collection> collections;
//bi-directional many-to-one association to Delivery
@OneToMany(mappedBy="address")
@JsonIgnore
private List<Delivery> deliveries;
public Address() {
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getAddress1() {
return this.address1;
}
public void setAddress1(String address1) {
this.address1 = address1;
}
public String getAddress2() {
return this.address2;
}
public void setAddress2(String address2) {
this.address2 = address2;
}
public String getAddress3() {
return this.address3;
}
public void setAddress3(String address3) {
this.address3 = address3;
}
public String getCity() {
return this.city;
}
public void setCity(String city) {
this.city = city;
}
public String getCountry() {
return this.country;
}
public void setCountry(String country) {
this.country = country;
}
public String getEmail() {
return this.email;
}
public void setEmail(String email) {
this.email = email;
}
public String getPostcode() {
return this.postcode;
}
public void setPostcode(String postcode) {
this.postcode = postcode;
}
public String getState() {
return this.state;
}
public void setState(String state) {
this.state = state;
}
public String getFirstname() {
return firstname;
}
public void setFirstname(String firstname) {
this.firstname = firstname;
}
public String getLastname() {
return lastname;
}
public void setLastname(String lastname) {
this.lastname = lastname;
}
public String getTelephoneno() {
return telephoneno;
}
public void setTelephoneno(String telephoneno) {
this.telephoneno = telephoneno;
}
public String getMobileno() {
return mobileno;
}
public void setMobileno(String mobileno) {
this.mobileno = mobileno;
}
public List<Collection> getCollections() {
return this.collections;
}
public void setCollections(List<Collection> collections) {
this.collections = collections;
}
public Collection addCollection(Collection collection) {
getCollections().add(collection);
collection.setAddress(this);
return collection;
}
public Collection removeCollection(Collection collection) {
getCollections().remove(collection);
collection.setAddress(null);
return collection;
}
public List<Delivery> getDeliveries() {
return this.deliveries;
}
public void setDeliveries(List<Delivery> deliveries) {
this.deliveries = deliveries;
}
public Delivery addDelivery(Delivery delivery) {
getDeliveries().add(delivery);
delivery.setAddress(this);
return delivery;
}
public Delivery removeDelivery(Delivery delivery) {
getDeliveries().remove(delivery);
delivery.setAddress(null);
return delivery;
}
}
我知道一个解决方案是在存储库中声明一个方法,其中包含所有字段的And
。例如
public Address findByFirstnameAndLastnameAndAddress1AndAddress2AndAddress3AndCityAndPostcode....();
但我想知道是否有更好的方法来做到这一点。有没有什么东西可以让我传递新的 Address
对象来检查数据库中是否存在相同的 Address
。
编辑
根据Manish的回答,我的理解如下:
1> 创建接口(interface) ExtendedJpaRepository
,如答案中所述。
2> 如下所示为此接口(interface)创建实现类(引用:Spring Data Jpa Doc)
public class MyRepositoryImpl<T, ID extends Serializable>
extends SimpleJpaRepository<T, ID> implements MyRepository<T, ID> {
List<T> findByExample(T example){
//EclipseLink implementation for QueryByExample
}
}
3> 然后对于每个存储库接口(interface),扩展ExtendedJpaRepository
。这应该使 findByExample
在每个存储库中都可用。
4> 创建自定义存储库工厂以替换默认的 RepositoryFactoryBean,如 Spring data JPA doc 的步骤 4 中所述.
5> 声明自定义工厂的 beans。(Spring Data JPA Doc 的第 5 步)
最佳答案
您正在寻找的是Query-by-Example
。如 this post 中所述,此功能已考虑用于 JPA 2.0,但未包含在最终版本中。该帖子还解释说,大多数 JPA 提供程序都具有实现此功能所必需的功能。
您可以创建自定义 JPA 存储库实现,以提供开箱即用的功能。 Spring Data JPA documentation 中提供了详细信息.
起点是创建一个新界面,例如:
public interface ExtendedJpaRepository<T, ID extends Serializable>
extends JpaRepository<T, ID> {
List<T> findByExample(T example);
}
然后,插入使用底层 JPA 提供程序的此接口(interface)的实现。最后,配置您的自定义实现以用于您的所有存储库接口(interface)。
之后,您应该可以调用 addressRepository.findByExample(address)
,前提是 AddressRepository
extends ExtendedJpaRepository
。
关于java - Spring 数据 JPA 存储库匹配所有列或整个 pojo,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28359655/
我刚刚发现了 Camel,它似乎正是我所需要的。 我有几个知道如何处理特定输入数据的构建 block ,所以我想创建一个非常简单的 GUI 供用户选择构建 block ,只需将它们一个接一个地链接起来
根据Convert Spark DataFrame to Pojo Object的回复我了解到 Dataframe是 Dataset 的别名. 我目前计算了 JavaPairRDD哪里CityStat
我使用的是jackson,场景是: 在客户端 (Android) 中生成对 Web 服务的 URL 调用 Web 服务以 json 形式返回“complex pojo”(具有与其他 pojo 相同的类
我需要将文档存储到 Elasticsearch 索引中,因此我定义了一个映射。我需要从我的 java 客户端向它提供看起来像 Compony 类的 pojo。它有很多重复的值。我可以使用对象组合模式来
所以我正在开发一个聊天应用程序。有一部分我感兴趣的是一次从数据库中检索 3 个实体。有一个 serverDto 实体和 accountDto 实体。每个服务器都有很多账户,账户里有一个字段叫做acti
我有一个 Java 中的 POJO 列表,我需要将其转换为另一种类型的 POJO 列表。两个 POJO 都有两个字符串字段。除了迭代原始列表并将新项目添加到结果列表之外,是否有更好的方法来执行此操作?
我正在开发一个 API 来访问存储在系统中的数据。该系统包含人员、约会和与这些约会相关的程序等内容。我的应用程序将严格为只读。 我正在使用带 RowMapper 的 Spring 来构建对象,例如“P
希望有人能帮助我。我有一个具有以下结构的 POJO: public class Invoice{ private String docNum; private String customer; pri
引用以下链接,我在运行时创建了类,http://blog.javaforge.net/post/31913732423/howto-create-java-pojo-at-runtime-with-j
所以我遇到了这个教程,将 POJO 序列化为 json,然后将 json 文件反序列化回 POJO。 http://www.mkyong.com/java/how-to-convert-java-ob
我是 Java 的新手。我只是对序列化和反序列化感到困惑。所以,我很困惑我应该使用哪一个。 我正在寻找一个回合,发现 Boon、Jackson、GSON(我目前正在使用 GSON,但一些文章使用 Ja
我确信这个问题可能已经被问过几次了,但我不明白我应该使用什么查询。我想要做的是,将 POJO 传递给另一个参数可以是动态的 POJO 像下面的例子 Class DataPOJO{ privat
我有一个有多页的注册表。所以,我将一页映射到一个 pojo。最后,当我处理数据库时,我想将其作为单个 pojo 提交。任何简化此模型的想法。 谢谢:) 最佳答案 您可以创建一个包装器 POJO,它在主
希望有人能帮助我。我有一个具有以下结构的 POJO: public class Invoice{ private String docNum; private String customer; pri
要求: 将 json 文件中选定的字段收集到 POJO 中(字段名称不匹配) 更新 POJO 的其他非映射字段 转换回带有 POJO 字段名的 jsonNode 问题:步骤 1 和 2 没问题。当将
我的 Spring Boot 应用程序中有两个 Pojo Pojo 1:FeedData 代码(我有获取和设置,只是没有在这里显示): package com.cms.tb.model; import
我们有两个 Pojo 文件。 Person { String name; int age; String address; String phoneNo; boolean isMa
我有一个数据库调用,如果没有任何条件匹配,则可能返回 null。如果有记录匹配,则结果是一个包含嵌入对象列表的 Pojo。我想将该 Pojo 转换为其嵌入对象 id 的列表。 Foo.class 有
我正在尝试使用流将 pojo 映射到 pojo 上的属性公开的一组项目。我意识到这还不清楚,所以我将展示我是如何在没有流的情况下完成的。 我有产品类别的枚举,产品的枚举和具有此类产品的商店列表 pub
我们在 Apache2 网络服务器后面的 Tomcat 6 中运行的 AXIS2 v1.5.2 中实现了一个 POJO 网络服务。 出于演示目的,我将重点介绍 validateUser 消息和相应的方
我是一名优秀的程序员,十分优秀!