我在Spring Data JPA中有两个实体:
User--->* TaxPayment
目标是获取与user\u id相关的所有税款:
User.java
public class User extends AbstractAuditingEntity implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
..........
}
税务ayment.jva
public class TaxPayment implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@NotNull
@Column(name = "payment_date", nullable = false)
private LocalDate paymentDate;
@NotNull
@Column(name = "amount", precision=10, scale=2, nullable = false)
private BigDecimal amount;
@Column(name = "reference")
private String reference;
@ManyToOne
private User user;
public Long getId() {
return id;
}..
}
我不想要一个太多的注释从User.java和列映射在纳税user_id。
规格等级如下:
final class TaxPaymentSpecification {
private TaxPaymentSpecification(){
}
static Specification<TaxPayment> hasUser(Long userId){
return new Specification<TaxPayment>() {
@Override
public Predicate toPredicate(Root<TaxPayment> arg0, CriteriaQuery<?> arg1,
CriteriaBuilder arg2) {
// TODO Auto-generated method stub
Root<TaxPayment> root = arg0;
Subquery<Long> subqry = arg1.subquery(Long.class);
Root<User> user = subqry.from(User.class);
final Join<User,TaxPayment> taxpays = root.join("user");
subqry.select(taxpays.<Long> get("user_id"));
subqry.where(arg2.equal(user.<Long> get("id"),userId));
return arg2.in(arg0.get("user_id")).value(subqry);
}
};
}
}
根据我获取所有与user\u id相关的税款的目标,规范是正确的还是错误的?
如果您已经知道userId,则不需要使用子查询,它将是user_id的值:
@Override
public Predicate toPredicate(Root<TaxPayment> arg0, CriteriaQuery<?> arg1,
CriteriaBuilder arg2) {
return arg2.equal(arg0.get("user_id"), userId);
}
问题内容: 我有一个设置,其中猫可以由许多所有者拥有,每个所有者可以拥有几只猫。鉴于此,我想写一个说明来帮助我找到具有给定主人姓名的所有猫。 这是一个简单的类设置。 *为简洁起见,没有getters / setter。id字段在超类中。 *为简洁起见,没有getters / setter。id字段在超类中。 这是一个存储库,其中包含有效的查询和无效的规范。 请帮我写规范。 我遇到的麻烦是,这种关系
我希望在消费者和政策这两个实体之间建立一对多关系。一个消费者应该有几个政策。 这是我想要的一个消费JSON对象的例子: 这就是我到目前为止所做的: 政策实体 消费者实体 我想没那么难,但我已经试了几个小时了,还是做不到。我刚到Spring,所以如果有人能帮助我,我会非常感激!
我按照本教程获得了Spring Data JPA规范:https://dzone.com/articles/using-spring-data-jpa-specification 它为我实现了这一点,但我不能调用规范方法来搜索它们。我想把它们放在我的SearchController中: 现在我想在我的SearchController(比如Controller)中调用这个方法,但我不知道如何调用。目
我有一个设置,猫可以由许多主人拥有,每个主人可以拥有几只猫。有鉴于此,我想写一个规范来帮助我找到所有拥有给定主人名字的猫。 下面是一个简单的类设置。 *简洁性方面没有获得者/接受者。Id字段位于超类中。 *简洁性方面没有获得者/接受者。Id字段位于超类中。 这是一个存储库,其中有一个有效的查询和一个无效的规范。 请帮我写一下说明书。 我遇到的问题是,这种关系似乎需要与这种关系的表达方式背道而驰:主
我正在回答这个问题,在单个表的日期、整数和字符串数据类型字段上执行多列搜索?并且该方法必须返回Java 8中类型specification 的结果。 实际上,我想在关联实体中搜索,以及全局搜索的一部分。使用是否可能? 我有和@onetomany关系。 EmployeeController.java java 当我点击时,我希望在表和表中进行搜索(可能使用类似)。这可能吗?如果是,我们怎么做? 有什
母实体 子实体 代码持久化 请告诉我这些步骤是否正确。我有以下例外。并且无法理解为什么父id在子表中不可用 原因:org.hibernate.exception.ConstraintViolation异常:无法将值NULL插入到列PARAM_REF_ID,表PARAM中;列不允许空值。INSERT失败。