我是一个初学者,学习JPA,为了练习,我在这个问题上工作,我有两个实体班Person和Gym。
Person有:-id(自动生成)-name-age-gym(多对一映射)
@Entity
public class Gym {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private int gym_id;
@NotNull
private String name;
@NotNull
private String city;
@NotNull
@Max(5)
private double rating;
@NotNull
private double fee;
@OneToMany(mappedBy="gym",
cascade= {CascadeType.MERGE, CascadeType.PERSIST,
CascadeType.REFRESH}, fetch=FetchType.EAGER)
@JsonManagedReference
private List<Person> personList;
public Gym() {
super();
}
public Gym(int gym_id, @NotNull String name, @NotNull double rating, @NotNull double fee, List<Person> personList,
@NotNull String city) {
super();
this.gym_id = gym_id;
this.name = name;
this.rating = rating;
this.fee = fee;
this.personList = personList;
this.city = city;
}
// getters and setters
@Entity
public class Person {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private int id;
@NotNull
private String name;
@NotNull
private int age;
@ManyToOne (cascade={CascadeType.MERGE, CascadeType.PERSIST,
CascadeType.REFRESH, CascadeType.DETACH})
@JoinColumn
@JsonBackReference
private Gym gym;
public Person() {
super();
}
public Person(int id, @NotNull String name, @NotNull int age, Gym gym) {
super();
this.id = id;
this.name = name;
this.age = age;
this.gym = gym;
}
// getters and setters
public interface PersonRepository extends JpaRepository<Person, Integer>{
@Query("select p from Person p join fetch p.gym where p.age<=(:age)")
List<Person> filterByAge(@Param("age") int age);
}
在我的服务课上,这就是我正在做的
List<Person> filteredPersonList = personRepository.filterByAge(age);
System.out.println(filteredPersonList); // prints empty
如果将存储库更改为此,则不需要构造查询,并且可以工作。
public interface PersonRepository extends JpaRepository<Person, Integer>{
List<Person> findByAgeLessThanEqual(int age);
}
我试图使用MapStruct在dto和实体对象之间映射convert,但是生成的映射器实现只返回空的映射对象。 BeermapperImpl 任何人都可以提供我的代码可能出错的地方?谢谢!
我想询问一个人,并得到以下回应: 但在需要时,我还想包含字段,并获得如下内容: 但是,我得到的只是手机ID,就像这样: 这是两个有问题的领域:
问题内容: 我有2个名为PurchaseList.java和PurchaseListItems.java的类 我必须在PurchaseListItems中映射PurchaseList PurchaseList.java PurchaseListItems.java 一切都很好,但我在pl_id中为空。请告诉我我错了 问题答案: 您的映射实际上定义了两个独立的单向关系。您想要的是一个双向关系。下面的
我发现了其他有相同错误的主题,但没有一个似乎涵盖了我的问题。 你能帮我弄清楚是什么问题吗? 多谢!
假设我有一组字符串和一个散列函数(或任何单边函数)和一个测试函数。我想用Java8流创建一个从输入字符串到通过测试函数的哈希值的映射。我的问题是如何在中编写? 看来老的for循环是最简洁的解决方案。
问题内容: 我有两个C#类 和 在dbContext调用中使用它,以通过EF5映射数据库中的返回对象 我遇到的问题是,即使返回了地址数据,我似乎也无法获得映射的地址对象。searchResult映射的其他属性很好。 问题答案: SqlQuery不支持 您应该做的是: