Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.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 HQL将写入@OneToOne和@JoinColumn的条件_Java_Sql_Spring_Hibernate_Hql - Fatal编程技术网

Java HQL将写入@OneToOne和@JoinColumn的条件

Java HQL将写入@OneToOne和@JoinColumn的条件,java,sql,spring,hibernate,hql,Java,Sql,Spring,Hibernate,Hql,我在应用程序中使用Hibernate和Spring4。 我创建了下一个数据库实体结构: public static class Entity1 { @Id private String guid; @OneToOne @JoinColumn(name = "name", referencedColumnName = "guid") private Localized name; private String another_data; } p

我在应用程序中使用Hibernate和Spring4。 我创建了下一个数据库实体结构:

public static class Entity1 {
    @Id
    private String guid;
    @OneToOne
    @JoinColumn(name = "name", referencedColumnName = "guid")
    private Localized name;
    private String another_data;


}

public static class Localized {
    @Id
    private String guid;
    private int locale;
    private String data;

}
本地化包含以下数据:

+-----------------+--------+---------------------------------------+
|      guid       | locale |                 data                  |
+-----------------+--------+---------------------------------------+
| random_string_1 |      1 | localized string (in English)         |
| random_string_1 |      2 | localized string (in German)          |
| random_string_2 |      1 | another localized string (in English) |
| random_string_2 |      2 | another localized string (in German)  |
+-----------------+--------+---------------------------------------+
在my database(MySQL)表中,本地化的
组合了主键(guid+locale)

在我的应用程序中,我希望使用我提供的区域设置获取Entity1对象

我可以用SQL来描述它:

SELECT e.guid, l.data, e.another_data 
    FROM Entity1 AS e, Localized AS l 
    WHERE l.locale = :myLocale AND l.guid = e.name;
但当我在Spring4存储库中尝试这样的查询时,我得到了一个错误,即对象无法转换为Entity1(我理解为什么)

我尝试了另一种HQL,如下所示:

@Query("SELECT e FROM Entity1 AS e WHERE e.name.locale = :locale")
Page<Entity1> findAllByLocale(Pageable pageable, @Param(Entity1.FIELD_LOCALE) int locale);
@Query(“从Entity1中选择e作为e,其中e.name.locale=:locale”)
Page findAllByLocale(可分页可分页,@Param(Entity1.FIELD\u LOCALE)int LOCALE);
它给了我正确的结果,除了名称,因为它仍然使用不正确的语言(id为1)。我还尝试使用联接,但没有帮助

谁能给我一些建议,我怎样才能完成我的任务?非常感谢