【发布时间】:2018-03-20 19:07:14
【问题描述】:
我正在使用 spring-data-jpa。我写了一个本机查询,但它不起作用。这是我的实体类:
@Entity
@Table(name="view_version")
public class ViewVersionDom {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Long id;
@ManyToOne
@JoinColumn(name="view_id")
private ViewDom view;
private Integer version;
@ManyToOne
@JoinColumn(name="datasource_param_id")
private DatasourceParamDom datasourceParam;
private String description;
@Column(name="created_date")
private Date createdDate;
@Entity
@Table(name="view_permission")
public class ViewPermissionDom extends BaseDom {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Long id;
@ManyToOne
@JoinColumn(name="view_id")
private ViewDom view;
@ManyToOne
@JoinColumn(name="user_id")
private UserDom user;
@ManyToOne
@JoinColumn(name="group_id")
private GroupDom group;
private Boolean read;
private Boolean write;
private Boolean execute;
这里是查询:
@Query(value = " SELECT v FROM ViewVersionDom v LEFT JOIN ViewPermissionDom vp ON v.view.id = vp.id "
+ " where (v.view.user.id = ?1 OR (vp.read=true and (vp.user.id=?1 or vp.user.id is NULL and vp.group.id is NULL or vp.group.id in (?2)))) "
+ " ORDER BY v.view.name", nativeQuery=true)
public List<ViewVersionDom> findUserViews(Long userId, List<Long> groupIds);
起初,当我没有编写 nativeQuery=true 时,应用程序没有构建,并且出现异常“连接 jpa 的预期路径”。当我设置 nativeQuery=true 时,应用程序已启动,但当我调用该函数时,出现以下错误:
org.hibernate.engine.jdbc.spi.SqlExceptionHelper - [ERROR: relation "viewversiondom" does not exist Position: 16]
org.hibernate.exception.SQLGrammarException: could not extract ResultSet]
是否有任何其他设置或注释可以解决问题? 我在谷歌搜索过,但在所有情况下都有 2 个表直接相互连接。
【问题讨论】:
标签: spring-data-jpa