Java JPA容器筛选一对多关系
我有一个Vaadin8应用程序和以下两个类。Java JPA容器筛选一对多关系,java,vaadin,vaadin8,jpacontainer,Java,Vaadin,Vaadin8,Jpacontainer,我有一个Vaadin8应用程序和以下两个类。 (为了可读性而简化了类) 汽车类别: 公共类Car实现可序列化{ 私有静态最终长serialVersionUID=1L; @身份证 @GeneratedValue(策略=GenerationType.IDENTITY) @基本(可选=假) @列(name=“id”) 私有整数id; @OneToMany(cascade=CascadeType.ALL,mappedBy=“carId”) 私人托收展期托收; } 汽车租赁期限类别: 公共类CarLe
(为了可读性而简化了类) 汽车类别:
公共类Car实现可序列化{
私有静态最终长serialVersionUID=1L;
@身份证
@GeneratedValue(策略=GenerationType.IDENTITY)
@基本(可选=假)
@列(name=“id”)
私有整数id;
@OneToMany(cascade=CascadeType.ALL,mappedBy=“carId”)
私人托收展期托收;
}
汽车租赁期限类别:
公共类CarLeasingDuration实现可序列化{
私有静态最终长serialVersionUID=1L;
@身份证
@GeneratedValue(策略=GenerationType.IDENTITY)
@基本(可选=假)
@列(name=“id”)
私有整数id;
@基本(可选=假)
@NotNull
@列(name=“start\u datetime”)
@时态(TemporalType.TIMESTAMP)
私人日期开始日期时间;
@基本(可选=假)
@NotNull
@列(name=“end\u datetime”)
@时态(TemporalType.TIMESTAMP)
私有日期endDatetime;
@基本(可选=假)
@NotNull
@列(name=“成本”)
私人浮动成本;
@JoinColumn(name=“car\u id”,referencedColumnName=“id”)
@多通(可选=假)
私家车龋齿;
}
您有一辆可以在一段时间内(startDatetime到endDatetime)多次租赁的汽车
我想创建一个组合框,包含所有汽车的列表,除了那些租赁期已到期的汽车。因此,我从Car类创建了一个JPA容器
EntityManager em=JPAContainerFactory.CreateEntityManager或PersistenceUnit(HelpConstants.PERSISTENT_单元);
JPAContainer carContainer=JPAContainerFactory.makeReadOnly(Car.class,em);
我试过这样的方法,当然不行
carContainer.addNestedContainerProperty(“carLeasingDurationCollection.carLeasingDuration.endDatetime”);
carContainer.addContainerFilter(新的非(新的比较.Greater(“carLeasingDurationCollection.carLeasingDuration.endDatetime”,新的日期()));
我收到无效属性名的错误消息
是否有一种方法可以根据Car和CarLeasingDuration之间的一对多关系筛选此容器?如果没有,我该怎么做呢
多谢各位