使用 Spring Boot 和 postgres。我在数据库中有分层数据,路径存储在 ltree 列中。我正在尝试根据路径获取特定对象,但无法查询数据库。
模型类:
@Entity
@Table(schema = "devschema", name = "family")
public class Family {
@Id
@Column(name = "member_id")
private Long memId;
@Column(name = "name")
private String memName;
@Column(name = "fam_path", columnDefinition="ltree")
private String familyPath;
... getters and setters
}
存储库类:
public interface OrgRepository extends PagingAndSortingRepository <Family, Long>{
public Family findByMemId(Long id);
public Family findByMemName(String memName);
@Query("select f from Family f where familyPath = ?1")
public Family findByPath(String path);
}
来自控制器的调用,将路径作为称为路径的字符串变量传递:
desiredMember = familyRepository.findByPath(path);
产生以下错误:
2016-02-15 20:41:06.430 ERROR 88677 --- [nio-8080-exec-1] o.h.engine.jdbc.spi.SqlExceptionHelper : ERROR: operator does not exist: devschema.ltree = character varying
Hint: No operator matches the given name and argument type(s). You might need to add explicit type casts.
Position: 397
2016-02-15 20:41:06.449 ERROR 88677 --- [nio-8080-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.dao.InvalidDataAccessResourceUsageException: could not extract ResultSet; SQL [n/a]; nested exception is org.hibernate.exception.SQLGrammarException: could not extract ResultSet] with root cause
org.postgresql.util.PSQLException: ERROR: operator does not exist: fhschema.ltree = character varying
Hint: No operator matches the given name and argument type(s). You might need to add explicit type casts.
Position: 397
我试图将 f 转换为文本,但无济于事。任何人都知道如何解决这个问题?