小编Gen*_*isa的帖子

JPA查询当天无视时间

假设您有一个带有java.util.Date字段的类.也许是一个To do class或Event planner类.

@Temporal(TemporalType.TIMESTAMP)
private Date startTime;
Run Code Online (Sandbox Code Playgroud)

这将映射到MySQL中的datetime列.

当您想要准确了解此事件何时发生时,有一些用例."计划于2011年8月11日晚上8点举行什么活动?"

有时您只想知道特定日期的计划事件."计划于2011年8月11日举办什么活动?"

如果你的JPAQL是:

SELECT blah blah etc. WHERE ti.startTime = :d1
Run Code Online (Sandbox Code Playgroud)

并且参数是java.util.Date实例:

query.setParameter("d1", date, TemporalType.DATE);
Run Code Online (Sandbox Code Playgroud)

您的结果将受到日期和时间的限制.

这是一个常见的用例,我很惊讶即使在JPA 2.0中也没有简单的方法可以做到这一点.

我宁愿不使用特定于供应商的黑客,也不要使用字符串/子串.

你是怎么解决这个问题的?

jpa jpa-2.0

10
推荐指数
2
解决办法
1万
查看次数

Swift中的"向下倾斜"C结构

Core MIDI是一种C API,提供其他地方没有的功能.

当用户的MIDI设置发生变化时(例如,您插入设备),会有通知.

这是被调用的函数的类型.

typealias MIDINotifyProc = CFunctionPointer<((UnsafePointer<MIDINotification>, UnsafeMutablePointer<Void>) -> Void)>
Run Code Online (Sandbox Code Playgroud)

第一个参数是MIDINotification结构,如下所示:

struct MIDINotification {
    var messageID: MIDINotificationMessageID
    var messageSize: UInt32
}
Run Code Online (Sandbox Code Playgroud)

您可以像这样实现回调:

func MyMIDINotifyProc (np:UnsafePointer<MIDINotification>, refCon:UnsafeMutablePointer<Void>) {        
    var notification = np.memory       
    switch (notification.messageID) {

    case MIDINotificationMessageID(kMIDIMsgObjectAdded):
        // In Objective-C you would just do a cast here
        // This is the problem line
        var m = np.memory as MIDIObjectAddRemoveNotification
Run Code Online (Sandbox Code Playgroud)

您将查看messageID成员以查看您刚刚收到的通知类型.有几个(我只展示一个).对于每种通知,您将获得传入的不同结构.这是添加或删除设备时获得的结构:

struct MIDIObjectAddRemoveNotification { 
    var messageID: MIDINotificationMessageID
    var messageSize: UInt32
    var parent: MIDIObjectRef
    var parentType: MIDIObjectType
    var child: MIDIObjectRef
    var …
Run Code Online (Sandbox Code Playgroud)

ios swift

8
推荐指数
1
解决办法
428
查看次数

标签 统计

ios ×1

jpa ×1

jpa-2.0 ×1

swift ×1