小编Ben*_*Ben的帖子

从Xcode(和仪器)在iPhone上运行iPhone应用程序时出现问题

从Xcode(或Instruments)在iPhone上运行一个应用程序时遇到问题.当我尝试运行应用程序时,我收到错误消息无法在Xcode的左下角上传XXX.app.奇怪的是它实际上已将应用程序上传到iPhone但它没有启动它(此后我可以在iPhone上手动启动应用程序).

因此,如果无法从Xcode或仪器启动应用程序,我就无法进行调试/性能测试.

关于这里可能出现什么问题的任何建议?

iPhone控制台告诉我这个:

Thu Oct  1 14:25:18 unknown mobile_installationd[1976] <Error>: 00808e00 install_embedded_profile: Skipping the installation of the embedded profile
Thu Oct  1 14:25:23 unknown SpringBoard[25] <Warning>: Reloading and rendering all application icons.
Run Code Online (Sandbox Code Playgroud)

其他应用工作正常.我在两个iPhone(均为3.1)上尝试了这个,结果相同.我在SnowLeopard上运行Xcode 3.2.

问候

iphone xcode instruments

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

通过Chrome中注入的样式表进行奇怪的样式设计

我们刚刚购买了Primeface主题和布局哨兵.但是我注意到Chrome中的桌子上有一种奇怪的样式.表格页眉和页脚有橙色边框.我的同事们没有看到这一点,如果我改变我的镀铬配置文件,我也看不到它.

屏幕截图来自Sentinel实时预览(文档页面)

原文可以在这里看到:http://www.primefaces.org/sentinel/documentation.xhtml#j_idt38

我注意到Chrome正在注入一个样式表:

.ui-widget-header {
    border: 1px solid rgb(231, 143, 8);
    border-image-source: initial;
    border-image-slice: initial;
    border-image-width: initial;
    border-image-outset: initial;
    border-image-repeat: initial;
    background: url(http://primefaces.org/sentinel/images/ui-bg_gloss-wave_35_f6a828_500x100.png) 50% 50% repeat-x rgb(246, 168, 40);
    color: rgb(255, 255, 255);
    font-weight: bold;
}
Run Code Online (Sandbox Code Playgroud)

这个注入的样式表来自哪里?我怎么能阻止它?我知道chrome扩展可以注入样式表,但是这个样式表有一个url到primefaces,或者只是一个红色的鲱鱼和扩展只是修改了现有的有效样式表?

更新:

.ui-widget-header {
    /* border: 1px solid #3f7506; */
    /* background: #3a8104 url("images/ui-bg_highlight-soft_33_3a8104_1x100.png") 50% 50% repeat-x; */
    color: #ffffff;
    font-weight: bold;
}
Run Code Online (Sandbox Code Playgroud)

}

这是正常的样式表(它被其他一些样式覆盖,这就是为什么某些部分被注释掉了).此样式表存在于两个配置文件中.从URL可以看出,样式通常使用相对URI,但注入的样式使用绝对URI.

css google-chrome primefaces

9
推荐指数
4
解决办法
1万
查看次数

Hibernates的问题hbm2ddl.auto = validate和MySQL文本类型

我试图在我继承的项目上启用hbm2ddl.auto = validate.我现在为String属性获得了许多错误的列类型异常,这些异常使用text或mediumtext(MySQL数据库)进行映射.

映射是:

@Column(name = "DESCRIPTION", nullable = false, length = 65535)
@Length(max = 65535)
@NotNull
public String getDescription() {
    return this.description;
} 
Run Code Online (Sandbox Code Playgroud)

db中的数据类型是'text'(utf8_general_ci).

我认为这应该是正确的映射,但Hibernate抱怨它发现了文本,但期待长篇大论.

我检查了hibernate配置,但没有指定对话框.我已经添加

<property name="hibernate.dialect" value="org.hibernate.dialect.MySQLInnoDBDialect"/>
Run Code Online (Sandbox Code Playgroud)

但这似乎没有什么区别.

我知道我可以将columnDefinition ="text"添加到映射中,但我必须在很多地方这样做,恕我直言,映射应该是正确的.出了什么问题?有任何想法吗?

谢谢

java mysql hibernate hbm2ddl

6
推荐指数
1
解决办法
5001
查看次数

手动回滚Seam中的事务

这与强制事务在验证错误时回滚类似的问题 情况是这样的:用户编辑页面,事务设置为MANUAL,因此只有当我们调用flush时它才会被提交到数据库.现在用户想要取消更改.很容易,因为你尚未冲洗它.

现在考虑这种情况:用户编辑页面上有很多ajax.其中一些ajax回调需要数据库查询(例如使用richFaces建议框等).还进行了一些验证,需要进行数据库查找.问题是Hibernate会在您执行查询时自动发出刷新.因此用户不按下取消按钮时的保存按钮(这将刷新交易).你现在做什么?

如果您不执行任何操作,则更改将写入数据库 - 而不是用户期望的内容.

您可以抛出一个带注释的异常

@ApplicationException(rollback=true)
Run Code Online (Sandbox Code Playgroud)

这会回滚交易.然后,您可以重定向到另一个页面.但是在这里我遇到了另一个问题,在某些页面上你重定向到你会得到一个懒惰的初始化异常.我指定了

<exception class="com.mycomp.BookingCancelException">
    <end-conversation before-redirect="true"/>  
    <redirect view-id="/secure/Bookings.xhtml">
        <message severity="INFO">#{messages['cancel.rollback']}</message>
    </redirect>
</exception>
Run Code Online (Sandbox Code Playgroud)

在pages.xml中,所以在我们进行重定向之前,对话应该结束.应该开始新的对话(使用新的交易),但似乎并非在所有情况下都会发生?为什么?

我已经阅读了其他你可以简单使用的地方

Transaction.instance().rollback();
Run Code Online (Sandbox Code Playgroud)

这是首选,因为您不必通过异常(当Seam处理异常时重定向总是需要很长时间),但问题是事务实际上没有回滚.我无法弄清楚为什么.如果我检查事务的状态,它表示它不处于回滚状态.

您如何最好地处理取消请求.在这种情况下,纯MANUAL刷新不起作用.您可以使用分离的实体,但页面包含多个链接的实体,因此这变得混乱.

更新:我现在发现抛出ApplicationException并不会在所有情况下回滚事务.所以现在相当困惑.

更新2:当您有一个使用ajax更新值的页面时,回滚事务当然不起作用.每笔交易仅涵盖一个请求.因此,如果您使用ajax请求执行5次编辑,则回滚事务将仅回滚上一次ajax请求的更改,而不是之前的4次请求.

所以解决方案是使用冲洗模式MANUAL.

即使您指定MANUAL,也会有一些事情会导致刷新.

  • ajax请求中的查询可以触发刷新 - 在查询上使用setFlushMode(FlushMode.COMMIT)来避免这种情况.
  • 持久化实体可以根据所使用的ID生成触发刷新(例如,如果您使用策略IDENTITY).您可以使用Cascades解决这个问题.如果您需要在编辑期间创建与您正在编辑的主实体没有任何实际关系的实体,只需将它们添加到列表中,并在执行保存时保留该列表中的所有实体.
  • 当您启动嵌套对话或其他bean加入对话时,如果未指定@Begin(join = true,flushMode = FlushModeType.MANUAL),则该会话上的Flush Mode将设置回AUTO.

您可能希望将MANUAL指定为components.xml中的默认模式

<core:manager concurrent-request-timeout="10000"
  conversation-id-parameter="cid" conversation-timeout="600000" default-flush-mode="MANUAL"/>
Run Code Online (Sandbox Code Playgroud)

java hibernate seam transactions rollback

6
推荐指数
1
解决办法
2270
查看次数

使用视图作为 Hibernate 的连接表

我有两个实体,我想通过一个公共字符串加入它们。我创建了一个我想用作连接表的视图。除了当我尝试删除一个实体时,这一切都很好。Hibernate 然后尝试从该视图中删除,这当然会失败。使用的数据库是 MySQL。

所以我有

@Entity
public class Event {

   ...
   String productId;
   Date eventDatetime;
   ...
}

@Entity
public class Stock {
   ...
   String productId;
   ...
}
Run Code Online (Sandbox Code Playgroud)

我在 MySQL 中创建了一个视图

DROP VIEW IF EXISTS EVENT_STOCK_VIEW;
create view EVENT_STOCK_VIEW AS
SELECT EVENT.EVENT_ID, STOCK.STOCK_ID 
FROM EVENT, STOCK 
where STOCK.PRODUCT_ID = EVENT.PRODUCT_ID;
Run Code Online (Sandbox Code Playgroud)

在事件中我添加了:

@ManyToOne(fetch=FetchType.LAZY)
@JoinTable(name="EVENT_STOCK_VIEW",
    joinColumns=@JoinColumn(name="EVENT_ID"),
    inverseJoinColumns=@JoinColumn(name="STOCK_ID",updatable=false,insertable=false))
public Stock getStock(){
    return this.stock;
}
Run Code Online (Sandbox Code Playgroud)

并有库存:

@OneToMany(fetch=FetchType.LAZY)
    @JoinTable(name="EVENT_STOCK_VIEW",
    joinColumns=@JoinColumn(name="STOCK_ID",updatable=false,insertable=false),       inverseJoinColumns=@JoinColumn(name="EVENT_ID",updatable=false,insertable=false))
    @OrderBy("eventDatetime DESC")
    public List<Event> getEvents(){
        return events;
}
Run Code Online (Sandbox Code Playgroud)

我用谷歌搜索了一下,找到了这个网站。但是解决方案并不是那么好(您必须在股票和事件之间使用实体)。

还有其他解决方案吗?

我可以使用休眠拦截器并覆盖 onPrepareStatement(String sql) 并检查 …

java mysql hibernate view jakarta-ee

5
推荐指数
1
解决办法
4539
查看次数

使用Hibernate或SQL比较两个枚举集合

我有一个实体'Parent',它有一组枚举

private Set<MyEnum> myEnums = EnumSet.noneOf(MyEnum.class);

    @CollectionOfElements(targetElement=MyEnum.class)
    @JoinTable
        (name="PARENT_MY_ENUM",
        joinColumns=@JoinColumn(name="PARENT_ID"))
    @Enumerated(EnumType.STRING)
    @Column (name="MY_ENUM", nullable=false)
    public Set<MyEnum> getMyEnums(){
        return myEnums;
    }


public MyEnum {
ENUM_A,
ENUM_B, 
ENUM_C,
ENUM_D;
}
Run Code Online (Sandbox Code Playgroud)

现在我想用MyEnums的集合搜索这个实体.只应返回在搜索集合中设置所有枚举的实体.因此,如果实体A具有ENUM_A,ENUM_B和ENUM_C并且实体B具有ENUM_B,ENUM_C,ENUM_D,则搜索集合ENUM_A,ENUM_B,ENUM_C的搜索应仅返回实体A.搜索ENUM_B和ENUM_C应该不返回任何内容.

我如何在Hibernate中做到这一点?如果我做

select p from Parent p where p.myEnums IN (:searchCollection) and size(p.myEnums) = size(:searchCollection)
Run Code Online (Sandbox Code Playgroud)

那么这将返回第一次搜索的两个实体.

有任何想法吗?

更新:通过弄清楚如何在MySQL中执行此操作,我更进一步,但将此应用于Hibernate会生成无效的SQL.您可以使用带有EXISTS的子查询,如:

WHERE EXISTS(
    SELECT pa.PARENT_ID, count(pme.MY_ENUM) FROM PARENT pa, PARENT_MY_ENUM pme
    where pa.PARENT_ID = pme.PARENT_ID 
    AND pme.MY_ENUM IN ('ENUM_A','ENUM_B')
    GROUP BY pa.PARENT_ID HAVING count(pme.MY_ENUM) = 2
)
Run Code Online (Sandbox Code Playgroud)

但是当我尝试在Hibernate中做同样的事情时:

select pa.ParentId, count(pa.myEnums) from Parent pa 
WHERE …
Run Code Online (Sandbox Code Playgroud)

mysql hibernate jpa

5
推荐指数
1
解决办法
625
查看次数

使用父子关系重新索引 Elasticsearch 索引

我们目前有一条“消息”,可以包含指向“父”消息的链接。例如,回复会将原始消息作为parent_id。

PUT {
  "mappings": {
    "message": {
      "properties": {
        "subject": {
          "type": "text"
         },
         "body" : {
            "type" : "text"
         },
         "parent_id" : {
            "type" : "long"
          }
        }
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

目前,我们在文档上没有 Elasticsearch 父子联接,因为父级和子级不允许具有相同的类型。现在,在 5.6 中,通过弹性驱动来摆脱类型,我们现在尝试在 5.6 中使用新的父子连接。

PUT {
  "settings": {
    "mapping.single_type": true
  },
  "mappings": {
    "message": {
      "properties": {
        "subject": {
          "type": "text"
         },
         "body" : {
            "type" : "text"
         },
         "join_field": {
            "type" : "join",
            "relations": {
                "parent_message":"child_message"
            }
        }
        }
      }
    }
  }
} …
Run Code Online (Sandbox Code Playgroud)

parent-child elasticsearch reindex

4
推荐指数
1
解决办法
1241
查看次数

使用OS 3.1中的UIImagePickerController从PhotoLibrary中挑选视频

我正在尝试从照片库中挑选视频.原则上我知道怎么做你将图像选择器的mediaType设置为NSArray,其中kUTTypeMovie是唯一的对象.但这似乎不适用于iPhone 3G.从OS 3.1开始,您可以存储在照片库中收到的视频.当您在"照片"应用程序中开始构建时,会显示视频.但是,使用UIImagePickerController不起作用.控制器报告它仅支持图像.当您尝试使用kUTTypeMovie设置控制器的mediaType时,它实际上崩溃了.

如果未指定媒体类型,则只有图像显示在选取器中.

有没有人设法从照片库中挑选视频?如果是,它只适用于3gs或3G吗?

问候

iphone iphone-3gs iphone-sdk-3.1

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