我有三个实体基本信息,性别和部门。如果我加入了basicInfo和gender模型,那么它工作得很好,但是当我想加入department和其他两个实体时,就会显示
.QuerySyntaxException:需要连接的路径!
@Entity
@Table(name = "employeebasicinfo")
public class BasicInfoModel {
@Id private String employeeId;
@NotBlank private String firstName;
@NotBlank private String lastName;
@NotNull private Integer companyId;
@Transient private String companyName;
private String phoneNo;
@Column(name = "sex")
private char sexId;
@Transient private String sexName;
@Temporal(TemporalType.TIMESTAMP)
private Date birthDate;
@Temporal(TemporalType.TIMESTAMP)
private Date joiningDate;
@NotNull private Integer department;
@Transient private String departmentName;
@ManyToOne()
@JoinColumn(name = "sex", referencedColumnName = "id", insertable = false, updatable = false)
private GenderModel genderModel;
@ManyToOne
@JoinColumn(
name = "department",
referencedColumnName = "id",
insertable = false,
updatable = false)
private DepartmentModel departmentModel;
// getter setter
}
@Entity
@Table(name = "gender")
public class GenderModel implements Serializable {
@Id
@Column(name = "id")
private char id;
@Column(name = "name")
private String name;
//getter setter
}
@Entity
@Table(name = "department")
public class DepartmentModel {
@Id private int id;
private String name;
//getter setter
}
我的Dto类
public class BasicInfoDto {
private String employeeId;
private String firstName;
private String lastName;
private Integer companyId;
private String companyName;
private String phoneNo;
private char sexId;
private String sexName;
private Date birthDate;
private Date joiningDate;
private Integer department;
private String departmentName;
public BasicInfoDto(char sexId, String sexName, int department, String departmentName) {
this.sexId = sexId;
this.sexName = sexName;
this.department = department;
this.departmentName = departmentName;
//getter setter
}
下面是我的存储库类:
@Repository
public interface BasicInfoRepository extends JpaRepository<BasicInfoModel, String> {
@Query(
value =
"SELECT new com.employeeAttendance.employeeAttendance.dto.BasicInfoDto ("
+ " a.sexId, b.name, a.department,c.name) FROM "
+ " BasicInfoModel a INNER JOIN GenderModel b on a.sexId = b.id" +
" INNER JOIN DepartmentMode c on a.department = c.id")
List<BasicInfoDto> getBasicInfoList();
}
最后我得到了这个错误
您正在处理jpql中的实体属性,而不是表。所以您只告诉jpql使用哪个属性来加入:
"SELECT new com.employeeAttendance.employeeAttendance.dto.BasicInfoDto ("
+ " a.sexId, b.name, a.department,c.name) FROM "
+ " BasicInfoModel a INNER JOIN a.genderModel b "
+ " INNER JOIN a.departmentModel c";
问题内容: 使用JDBC连接池工具(如DBCP或c3p0)有什么好处? 如果只有 一个* 用户的 小型CRUD 应用程序,我们是否可以将 一个 连接会话创建为一个 单例 ? * PS :我正在构建一个带有小型数据库(5个表)的小型后端应用程序。 问题答案: 从Jon Skeet的答案到连接和语句池的好处是什么?: 创建到数据库服务器的网络连接是(相对)昂贵的。同样,要求服务器准备SQL语句(相对)
我读过PingFederate的文档,上面写着: SP适配器用于为用户创建本地应用程序会话,以便PingFederate提供对您的应用程序或其他受保护资源的SSO访问。为了建立到IdP伙伴的连接,您必须至少配置一个SP适配器实例。您还可以配置多个适配器实例(基于一个或多个适配器),以满足您的IdP合作伙伴的不同需求。 但我不明白为什么IdP连接需要SP适配器?为什么需要它?它真正做什么? 在我的用
问题内容: 我正在使用pyqt5,并且有几种使用类似于以下代码的方法连接: 例如,其中: 此代码似乎在多个方案中干净利落地工作,而没有装饰用或做什么特别的吧。 我的问题是: 通过这种方式我会失去什么? 需要什么原因? 问题答案: 的主要目的是允许定义插槽的几个不同的重载,每个重载都具有不同的签名。进行跨线程连接时,有时也可能需要使用它)。但是,这些用例相对较少,并且在大多数PyQt应用中根本不需要
我正在尝试按照本教程实现nodejs mysql数据库。我知道 查询()是Pool.GetConnection()+Connection.Query()+Connection.Release()的快捷方式。 在本文中,数据库配置为: 这是可以用作: 但是,我真的不明白 如果使用pool会自动释放连接,为什么我们需要这样做呢?
IntelliJ中的什么功能作为服务器来接受传入连接? 当第一次运行Intellij2017.1.1时,我会得到一个对话框,要求允许传入网络连接。 您希望应用程序“Java”接受传入的网络连接吗? null 这个问题不是关于消息的来源。源码是Apple macOS应用程序级防火墙。您可以允许或阻止应用程序侦听传入的网络连接。允许这样做是一个安全风险。 IntelliJ要求被添加到允许监听传入消息的
这里我的问题是在关闭连接对象时,在以下情况下会出现什么问题。 > 假设没有发生异常,在try块中它会自动关闭连接对象。 如果发生某些异常,它将转到catch块,在那里它将自动关闭连接对象。 关闭finally块中的连接对象。 注意:请不要说最后块中关闭连接对象很好。我知道那个。如果我在try块中保持关闭连接,接球块是否有任何问题请解释。