你好,我有两个标签
1.人员表
2.电话号码表
我正试图实现这样的质疑
SELECT * FROM jobs.phonenumber where Person_ID='1';
但是在jpql中。
我试着做一些类似于:
String query="SELECT p1 FROM PhoneNumber p1 WHERE p1.person=:id;
下面是我的实体类的示例:
@Entity
public class PhoneNumber {
@Id
@GeneratedValue
@Column(name = "phoneId")
private long id;
@Column(name = "phoneNumber")
private int number;
@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(name = "Person_ID")
private Person person;
@Entity
public class Person {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "personId")
private long id;
@Column(name = "personName")
private String name;
@Column(name = "personAge")
private int age;
@OneToMany(mappedBy = "person")
private List<PhoneNumber> phones;
我有一个错误:参数值1与预期类型[model.Person(n/a)]不匹配
下面是我的方法:
@Path("{id}/phones")
@GET
@Produces(MediaType.TEXT_PLAIN)
public List<PhoneNumber> getPhoneNumbers(@PathParam(value = "id") long id) {
List<PhoneNumber> resultList = new ArrayList<>();
EntityManager createEntityManager = emf.createEntityManager();
String query="select p1 from PhoneNumber p1 where p1.person=:id";
TypedQuery<PhoneNumber> createNamedQuery = createEntityManager.createQuery(query, PhoneNumber.class);
createNamedQuery.setParameter("id", id);
try {
resultList = createNamedQuery.getResultList();
} catch (Exception e) {
System.out.println("Could not retrive phone list");
}
return resultList;
}
谁能帮我一下,我做错了什么?
您需要使用person.id
来查询:
String query="select p1 from PhoneNumber p1 where p1.person.id=:id";
或者先检索这个人,然后将其用作参数:
Person person = createEntityManager.find(Person.class, id);
String query="select p1 from PhoneNumber p1 where p1.person=:id";
TypedQuery<PhoneNumber> createNamedQuery = createEntityManager.createQuery(query, PhoneNumber.class);
createNamedQuery.setParameter("id", person);
我做错了什么? 正在更新: 我发现了问题所在。问题与ActionRepository中找到的函数有关。函数的签名首先要求两个日期进行比较,然后id和我给出了相反的值。我很清楚,在我上了它之后,我会有一个问题的日期,所以答案确实帮助了我。谢谢大家!
我得到的错误. 我对此感到困惑,因为它来自下面显示的被注释掉的服务方法。当我把它注释掉时,错误就避免了。列是一个,即或。 实体: 我的存储库: 我的服务: 当我取消注释时
我试图更新一个实体与OneToOne关系使用restful Web服务。 我使用自定义查询,但它不工作 错误: java.lang.的参数值[2]不匹配预期的类型[com.mezoo.tdc.model.ActivityType(n/a)] 活动豆 豆子 它是可能的更新没有自定义查询?我想使用下面的POST请求: {"uuid":"9d9fa946-ee6e-408e-9e8a-7a9786a1d
我有实体和rest控制器,当我向控制器发出请求时,它会引发以下异常: java.lang.:参数值[1]不匹配预期类型[java.lang.整数(n/a)] 我的控制器: 我的实体具有int类型id:
它打印出值的等效,这是因为这一行: 通过调用表示。 那么,如何使Hibernate相信是的实例? 我的枚举是由加载的。而由URLClassLoader加载,由另一个类加载器加载。
我试图在QueryDSL4.1.4中运行带有子查询的查询。版本3.x中的等价物起作用了,但我似乎无法在版本4.1.4中使其起作用。不确定是我漏了什么还是有个bug。感谢任何输入! 下面是相关代码: 似乎整个子查询都被设置为参数,而Hibernate对此并不满意。是否应该使用不同的QueryDSL语法来避免此问题?