有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Hibernate许多人加入

我刚开始冬眠,我正在春天使用它。我有以下表格:

@Entity
@Configurable
public class Location {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long locationid;

    private String locationName;

    @ManyToOne
    private Site site;

//getters setters skipped
}

@Entity
@Configurable
public class Site {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long siteid;

    private String siteName;

    @ManyToOne
    private Country country;
    //getters setters skipped
    }

@Entity
@Configurable
public class Country {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long countryid;

    private String countryName;
    @ManyToOne
    private Region region;
    //getters setters skipped
}

@Entity
@Configurable
public class Region {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long regionid;

    private String regionName;
    //getters setters skipped
}

public class Assets {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long assetId;


    @ManyToOne
    private Location location;
    //getters setters skipped
}

我想根据地区提取所有资产。我该怎么做

如何使用区域之间的关系-->;国家-->;网站-->;定位并提取相关记录?我如何在不影响性能的情况下做到这一点

还是我应该重新设计桌子


共 (1) 个答案

  1. # 1 楼答案

    您只需在类资产中通过@NamedQuery完成它:
    select a from Asserts a where a.location.site.contry.regin.reginName = :reginName

    希望能有所帮助