我有两个多对多映射的类:用户和主题。我想做的是得到所有的主题谁有提供的用户。有时(这是我最奇怪的部分)它会给我带来这样的错误:
com.mysql.jdbc.exceptions.jdbc4.mysqlsyntaxerrorexception:您的SQL语法中有一个错误;请查看与您的MySQL服务器版本相对应的手册,以便在第1行'))'附近使用正确的语法
@Entity
@Table(name = "user")
public class User {
/* ... */
@JsonIgnore
@LazyCollection(LazyCollectionOption.TRUE)
@ManyToMany(fetch = FetchType.LAZY)
@JoinTable(name = "favorite_topics",
joinColumns = @JoinColumn(name = "user_id"),
inverseJoinColumns = @JoinColumn(name = "topic_id"))
private Set<Topic> favoriteTopics;
/* ... */
}
@Entity
@Table(name = "topic")
public class Topic {
/* ... */
@JsonIgnore
@LazyCollection(LazyCollectionOption.TRUE)
@ManyToMany(mappedBy = "favoriteTopics", fetch = FetchType.LAZY)
private Set<User> favoritedBy;
/* ... */
}
@Repository("topicRepository")
public interface TopicRepository extends JpaRepository<Topic, Integer> {
/* ... */
@Query("SELECT t FROM Topic t WHERE :user in t.favoritedBy")
Set<Topic> favoritedBy(@Param("user") User user);
/* ... */
}
返回的查询是:
select topic0_.*
from topic topic0_
cross join favorite_topics favoritedb1_, user user2_
where topic0_.topic_id = favoritedb1_.topic_id
and favoritedb1_.user_id = user2_.user_id
and (? in (.))
我在这里漏掉了什么?完整的代码在github
这个查询除了读取用户最喜欢的关联之外,没有提供任何东西吗?就用关联。
我有表,当我添加新行时,我想计算一个id号。 条件: 如果我有缺失的数字,请给出最小的一个(3),如果我没有缺失的数字,请给出一行中的下一个数字(5) 如何将此条件构建到查询中? 我的查询: 桌子 如果我缺少id,则解决方案 如果我没有丢失的id,则解决方案
我想不出如何使用TypeOrm查询生成器编写以下MySql语句 从farm.reg中选择reg.id,其中grpId=“abc”; 这个选择返回的只是ID的,但我的查询生成器返回的是整个对象。 现在,我在我的NestJs服务中有这个函数,但我需要使用'map',我不想… 谢谢
有几种不同方法可以生成查询结果: 结果数组 结果行 自定义结果对象 结果辅助方法 Class Reference 结果数组 result() 方法 该方法以**对象数组**形式返回查询结果,如果查询失败返回**空数组**。 一般情况下,你会像下面这样在一个 foreach 循环中使用它: $query = $this->db->query("YOUR QUERY"); foreach ($que
但是生成的SQL查询是 正如您所看到的,括号改变了,我相信两个查询中的条件并不相同。是虫子吗?使用hibernate和spring以及postgresql数据库。
我有一个名为TEST的表,列名为col1、col2、col3、col4。。。。。。。。。。所以,从信息模式来看。列我将获得有关此表对象的详细信息。 现在,我想通过从信息_模式中提供列名称,从测试表中构建一个select查询。柱。像这样,从information_schema中选择column_name。表_name='TEST'中的列。这会回来的 col1 col2 col3 我想在selectq
我有以下工作查询 它在整个路径=/content/dam上运行,所以它遍历所有节点大约20分钟,并给出结果。 当以编程方式使用查询生成器api时,我如何才能批量使用它,比如-遍历1000个节点并按代码执行某些操作,然后继续查询并遍历下1000个节点等等?这可能吗? 谢谢。