我正在使用Spring Data JPA并尝试向我的存储库添加查询.我试图在没有@Query注释的情况下构建查询,如:
List<Item> findByTypeAndStateOrStateAndStartDateBetween(Type type, State s, State s2, Date startDate, Date endDate);
Run Code Online (Sandbox Code Playgroud)
我的目标是构建一个这样的查询:
select * from item where type = ? and (state = ? or state = ?) and start_date between ? and ?
Run Code Online (Sandbox Code Playgroud)
我的问题是OR子句.有没有办法确保有括号?否则,逻辑是不对的.我在这里找到的例子:http: //static.springsource.org/spring-data/data-jpa/docs/1.0.0.M1/reference/html/#jpa.query-methods.query-creation
没有任何或超过1列的子句.
还有,有一种传递对象列表的方法.例如,如果我想找到具有3种状态的项目,我将不得不创建另一个查询,这种查询不能很好地扩展.
谢谢.
编辑:
我想出了如何使用@Query表示法传递状态列表.你这样做:
@Query("FROM item i WHERE i.type = ?1 AND i.state IN (?2)")
Run Code Online (Sandbox Code Playgroud)
然后你可以将列表作为第二个参数传递给方法.如果不使用@Query表示法仍然不知道如何做到这一点.
我有一个看起来像这样的intent过滤器:
<activity
android:name="com.test.Call"
android:label="@string/makeCall" >
<intent-filter>
<action android:name="android.intent.action.CALL" />
<category android:name="android.intent.category.DEFAULT" />
<action android:name="android.intent.action.CALL_PRIVILEGED" />
<data android:scheme="tel" />
</intent-filter>
</activity>
Run Code Online (Sandbox Code Playgroud)
这很好用,当你尝试拨打电话时,我的文字显示为其中一个选项.我想要做的是处理被呼叫的号码并询问用户一些问题,然后继续通话.我通过在执行任何处理之后运行以下代码来执行此操作:
Uri phoneCall = Uri.parse("tel:" + numToCall);
Intent caller = new Intent(Intent.ACTION_DIAL, phoneCall);
startActivity(caller);
Run Code Online (Sandbox Code Playgroud)
问题是,它从头开始显示相同的选项(本机调用者和我的意图过滤器).这不是我想要的,我想绕过我的意图过滤器并直接转到本机调用者.有没有办法做到这一点?如何强制意图直接转到本地调用者?我正在考虑将其移动到广播接收器,但宁愿走这条路.
谢谢
我正在使用spring-data和jpa存储库进行查询。我遇到一个问题,我有一个具有ManyToOne字段的实体,如果我按查询中的该字段排序,则该字段中没有返回任何Null的值。这似乎不是适当的行为。
这是我的实体的样子:
@Entity
public class Item {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@NotNull
@Column(name = "id")
private Integer id;
@Size(max = 255)
@Column(name = "name")
private String name;
@JoinColumn(name = "owner_user_id", referencedColumnName = "id")
@ManyToOne(fetch = FetchType.LAZY)
private User ownerUserId;
}
Run Code Online (Sandbox Code Playgroud)
然后是ManyToOne用户实体
@Entity
public class User {
@Size(max = 100)
@Column(name = "email")
private String email;
@Size(max = 256)
@Column(name = "first_name")
private String firstName;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@NotNull
@Column(name = "id")
private Integer …Run Code Online (Sandbox Code Playgroud) 我正在考虑将一组 REST 服务部署到 azure 中。这些服务将支持移动应用程序前端和基于 Web 的前端。我希望它们可以独立部署和扩展。他们需要与其他团队或第三方开发/维护的其他一些 Web 服务、API 等进行通信。不确定它们是否是纯微服务,但想法是每个服务都负责一个“域”,但是它可能需要从其他服务之一获取信息。例如,一个负责获取/更新客户的地址,另一个负责偏好。
我不确定是否应该为每个服务创建一个单独的应用服务环境,还是为所有服务创建一个应用服务环境?撇开成本不谈,是否有任何技术理由让它们都保持在同一个应用服务环境中?我的第一个想法是为每个服务创建一个应用服务环境,因为这样可以提供最大程度的隔离,但是网上的很多示例看起来好像人们在同一个应用服务环境中部署了多个应用/服务。
谢谢