java - 使用 @Query 使用 Spring Data 创建自定义查询

标签 java spring

我有一个消息实体和一个管理实体。 消息是:

@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long id;

@Column(name = "text")
private String text;

@OneToOne
@JoinColumn(name = "id_from")
private Admin idFrom;

@OneToOne
@JoinColumn(name = "id_too")
private Admin idToo;

管理员是:

@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long id;

@Column(name = "username")
private String username;

@Column(name = "password")
private String password;

@Column(name = "email")
private String email;

如何创建此查询:

select id_from, text from message
where id_from = from and id_too = too
or id_from = too and id_too = from; 

使用@Query注释?

类似这样的事情:

@Query("SELECT m FROM Message m WHERE m.id_from = :from.id and m.id_too = :too.id or m.id_from = :too.id and m.id_too = :from.id")
List<Message> findMessages(@Param("from") Admin from, @Param("too") Admin too);

谢谢

最佳答案

@Query("SELECT m FROM Message m WHERE m.idFrom.id = :fromId and m.idToo.id = :tooId or m.idFrom.id = :tooId and m.idToo.id = :fromId")
List<Message> findMessages(@Param("fromId") Long fromId, @Param("tooId") Long tooId);

关于java - 使用 @Query 使用 Spring Data 创建自定义查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41593910/

相关文章:

java - 从 Oracle 10g 检索 CLOB 时出错

hibernate - uniqueResult 静默失败

database - 如何从 spring roo 应用程序连接 Heroku 数据库

AngularJS 和 Spring boot Web 应用程序作为独立的桌面应用程序

java - 我的 Insert Into 语句不起作用

Java - 返回 Hashmap<Class,ArrayList<Class>> 中最长 ArrayList 的键

java - 如何让按钮在一段时间内不可点击?

java - Spring 在哪里获取 SSL 证书?

java - Jboss 7.2 和 Java 8

java - 何时使用 Bean Validation 与自定义验证框架?