Tag: wicket

hibernate / webapp上下文中的对象相等

你如何处理由hibernate管理的java对象的对象相等性? 在“hibernate in action”一书中,他们说人们应该支持商业密钥而不是代理密钥。 大多数时候,我没有业务密钥。 想一想映射到一个人的地址。 地址保存在Set中并显示在Wicket RefreshingView中(使用ReuseIfEquals策略)。 我可以使用代理id或使用equals()和hashCode()函数中的所有字段。 问题是那些字段在生命周期内对象变化。 要么是因为用户输入了一些数据,要么由于在OSIV(在视图中打开会话)filter内调用JPA merge()而导致id发生变化。 我对equals()和hashCode()契约的理解是那些在对象的生命周期内不应该改变的。 到目前为止我尝试了什么: equals()基于使用数据库id的hashCode()(如果id为null,则为super.hashCode())。 问题:新地址以null id开头,但在附加到某人时获得id,并且此人在osiv-filter中合并()(重新附加)。 首次调用hashCode()时,延迟计算哈希码,并使哈希码成为@Transitional。 不起作用,因为merge()返回一个新对象,并且不会复制哈希码。 我需要的是在我认为在对象创建期间分配的ID。 这里有什么选择? 我不想引入一些额外的持久属性。 有没有办法明确告诉JPA为对象分配ID? 问候

JSON格式化(通过jQuery AJAX发送JSON发布到Java / Wicket服务器)

我正在使用jQuery将JSON发布到Java服务器,但我认为我的JSON一定是错的。 这是我的数据示例以及我如何发送它: var lookup = { ‘name’: name, ‘description’: description, ‘items’: [{ ‘name’: itemName, ‘value’: itemValue }] } $.ajax({ type: ‘post’, data: lookup, dataType: ‘json’ }); 我正在使用Wicket的AbstractAjaxBehavior来接收数据,并希望得到一个我可以解析的JSON字符串。 当我得到传递参数的Map时,键集如下所示: items[0][name], description, name, items[0][value], 显然,我可以轻松获取名称和描述的值,但是我的项目数组的关键字搞砸了。 我确信这很简单,但我似乎一直在解决这个问题。 有什么建议么? 谢谢!