Java 从Spring Data-JPA中没有PK/FK关系的不同表中获取列值
我有一个名为Employee的实体类Java 从Spring Data-JPA中没有PK/FK关系的不同表中获取列值,java,spring,jpa,spring-data,Java,Spring,Jpa,Spring Data,我有一个名为Employee的实体类 @Entity @Table(name = "employee") @DynamicUpdate public class Employee { private String empId; private String name; private String employeeDefaultCountry; @Id @Column(name="
@Entity
@Table(name = "employee")
@DynamicUpdate
public class Employee {
private String empId;
private String name;
private String employeeDefaultCountry;
@Id
@Column(name="emp_id", nullable=false, insertable=true, updatable=true, length=8)
public String getEmpId() {
return empId;
}
public void setEmpId(String empId) {
this.empId= empId;
}
...
}
employeeDefaultCountry在另一个表“system_defaults”中定义,这两个表(employee和system_defaults)之间没有主键和外键关系。
但是,将为系统默认id(PK)提供一个常量值,该值为常量1。我怎样才能做到呢
通过本机SQL实现:
select empId,name,(select employee_default_country from system_defaults where id=1) as DefaultCountry from employee.
输出:
empId,Name,DefaultCountry
101,Ahmed,India
103,Parkash,India
...
我想在JPA中实现这一点
注意:此DefaultCountry字段应可读,保存到DB时不应写入
employee Table fields(emp_id(VARCHAR2),name(VARCHAR2)) only two fields
system_parameters Table fields(id(INT),default_country(VARCHAR2),default_designation(VARCHAR2)) only three fields.
系统的实体\u默认值:
@Entity
@Table(name = "system_defaults")
@DynamicUpdate
public class SystemDefaults {
Integer id;
String defaultCountry;
@Id
@Column(name = "id", nullable = false, insertable = false, updatable = false)
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
@Basic
@Column(name = "default_country", nullable = false, insertable = false, updatable = false, length = 40)
public String getDefaultCountry() {
return defaultCountry;
}
public void setDefaultCountry(String defaultCountry) {
this.defaultCountry = defaultCountry;
}
}
我尝试使用@SecondaryTable,但它需要pkJoinColumns=@PrimaryKeyJoinColumn,所以没有实体映射到另一个表?如果不是的话,那就忘了它,你不能来,一定有办法。我是JPA新手,但一定有一个本地人。我不知道你的实体是什么。但如果你问的是实体类,是的,我两个都有单独的实体类。很简单,只是想加入员工结果集,来自不同表的附加列值,该列值将在每个记录中重复一行。正如您在SQL查询中看到的那样。