Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 未使用hibernate从映射表获取数据_Java_Mysql_Sql Server_Spring_Hibernate - Fatal编程技术网

Java 未使用hibernate从映射表获取数据

Java 未使用hibernate从映射表获取数据,java,mysql,sql-server,spring,hibernate,Java,Mysql,Sql Server,Spring,Hibernate,嗨,我刚开始冬眠 我有一个JavaWeb项目,我在这个项目中使用SpringMVC和hibernate,对于数据库我使用sql 我面临的问题是: 我在db中有一个表作为user,在java项目中有一个表作为user.java 我有另一个表引用,在java项目中我有references.java 我创建了一个映射表作为user\u references\u映射(user\u id,references\u id) 我在用户和引用表之间有一对多的关系 现在,当我尝试获取用户数据时,它会给我用户表co

嗨,我刚开始冬眠

我有一个JavaWeb项目,我在这个项目中使用SpringMVC和hibernate,对于数据库我使用sql

我面临的问题是: 我在db中有一个表作为user,在java项目中有一个表作为user.java 我有另一个表引用,在java项目中我有references.java 我创建了一个映射表作为user\u references\u映射(user\u id,references\u id)

我在用户和引用表之间有一对多的关系

现在,当我尝试获取用户数据时,它会给我用户表columns数据,而不是references数据,并且只返回references表的null列表

另一方面,我也有类似的映射表,具有类似于用户表的角色、仅具有一对多映射的地址,并且从这些表中检索数据

那么,有谁能帮我得到解决方案吗?这就是为什么我不能使用一对多关系来获得references表的数据,以及解决方案应该是什么

用户表中引用表的映射:

@OneToMany
@Basic(optional = true)
@BatchSize(size = 5)
@Cascade(CascadeType.ALL)
@Cache(region = IAppConstants.CACHE_REFERANCES, usage = CacheConcurrencyStrategy.READ_WRITE)
@JoinTable(name = "user_referances_mapping", joinColumns = { @JoinColumn(name = "user_id") }, inverseJoinColumns = { @JoinColumn(name = "referance_id") })
private List<Referances> referances = new ArrayList<Referances>();

public List<Referances> getReferances() {
    return referances;
}

public void setReferances(List<Referances> referances) {
    this.referances = referances;
}

通过以下方式获取用户:联系人号码或电子邮件=“从用户,其中联系人号码=:联系人号码或电子邮件=:电子邮件”

如果我是对的,OneToMany关系在默认情况下被定义为“lazy”,这意味着您需要显式地声明您想要获取相关记录

尝试按如下方式修改查询:

FETCH_USER_BY_CONTACTNO_OR_EMAIL = "FROM User u LEFT JOIN FETCH u.referances WHERE u.contactNo=:contactNo or u.email=:email";

请分享你实际查询的代码。我已经编辑了这篇文章,请查看它的实际查询功能。这不起作用,在这行代码中返回(用户)query.uniqueResult();它给出ApplicationException内部异常是什么?请发布完整的堆栈跟踪。该错误是由于其他原因造成的。你的回答奏效了。非常感谢,如果我必须从2个或多个表中获取结果,而不是仅从u.references获取结果,那么可以做什么?
FETCH_USER_BY_CONTACTNO_OR_EMAIL = "FROM User u LEFT JOIN FETCH u.referances WHERE u.contactNo=:contactNo or u.email=:email";