即使指定了架构,关系也不存在
Relation doesn't exist even with schema specified
尝试使用 JPA 发出请求时出现错误。
我在我的 class 实体中指定了 table 所在的架构:
@Data
@NoArgsConstructor
@AllArgsConstructor
@Entity
@Table(schema = "dwp_schema")
public class Corridor {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id_corridor;
private Integer id_floor;
private String orientation;
}
当我在我的存储库中执行特定请求时:
public interface CorridorRepository extends JpaRepository<Corridor, Integer> {
@Query(value = "select * from corridor c inner join floor f on f.id_floor=c.id_floor INNER JOIN building b on f.id_building = b.id_building WHERE b.building_name=?1 AND f.floor_number=?2" ,nativeQuery = true)
List<Corridor> getCorridorsByFloor(String building_name, int floor);
}
我在 Postgres 中有以下错误:
org.postgresql.util.PSQLException: ERROR: relation "corridor" does not exist
有人有想法吗?
谢谢。
尝试在 table 名称之前写入架构名称:
@Query(value = "select * from dwp_schema.corridor c inner join floor f on f.id_floor=c.id_floor INNER JOIN building b on f.id_building = b.id_building WHERE b.building_name=?1 AND f.floor_number=?2" ,nativeQuery = true)
您需要在连接字符串中指定您的数据库和模式:
jdbc:postgresql://localhost:5432/dbname?currentSchema=dwp_schema
将模式名称放在实体声明中无论如何都不是一个好主意 - 您的 DBA 应该能够决定模式名称。
尝试使用 JPA 发出请求时出现错误。
我在我的 class 实体中指定了 table 所在的架构:
@Data
@NoArgsConstructor
@AllArgsConstructor
@Entity
@Table(schema = "dwp_schema")
public class Corridor {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id_corridor;
private Integer id_floor;
private String orientation;
}
当我在我的存储库中执行特定请求时:
public interface CorridorRepository extends JpaRepository<Corridor, Integer> {
@Query(value = "select * from corridor c inner join floor f on f.id_floor=c.id_floor INNER JOIN building b on f.id_building = b.id_building WHERE b.building_name=?1 AND f.floor_number=?2" ,nativeQuery = true)
List<Corridor> getCorridorsByFloor(String building_name, int floor);
}
我在 Postgres 中有以下错误:
org.postgresql.util.PSQLException: ERROR: relation "corridor" does not exist
有人有想法吗?
谢谢。
尝试在 table 名称之前写入架构名称:
@Query(value = "select * from dwp_schema.corridor c inner join floor f on f.id_floor=c.id_floor INNER JOIN building b on f.id_building = b.id_building WHERE b.building_name=?1 AND f.floor_number=?2" ,nativeQuery = true)
您需要在连接字符串中指定您的数据库和模式:
jdbc:postgresql://localhost:5432/dbname?currentSchema=dwp_schema
将模式名称放在实体声明中无论如何都不是一个好主意 - 您的 DBA 应该能够决定模式名称。