我的Web应用程序的用户可能打开了多个浏览器窗口并指向同一页面.我希望页面中某些内容的状态(通过ajax加载)在回发中保留.我可以存储在cookie中或存储在我的服务器上.无论哪种方式,我都想不出如何区分每个窗口.
例如,假设用户Bob有两个浏览器窗口打开ListOfSomething页面.每个列表都有一个LoadedPageNumber属性,我需要保留它.否则用户在刷新时总是在第1页结束.Bob可能已加载浏览器窗口1并将其指向第5页,然后加载浏览器窗口2并将其指向第14页.如果我只是根据会话ID存储该属性,则Bob将在窗口1中获取第14页(如果他刷新).
请注意,我的状态变量实际上比这个简单的例子复杂得多,而且我无法坚持它们可能会导致很大的问题(我的应用程序存在缺陷).
我需要某种浏览器窗口ID或其他东西.它当然需要是一个跨浏览器的解决方案(IE6 +,Wekbit?+,FF2 +)
有任何想法吗?
关于相关性的注意事项:请记住,这对于将较旧的基于表单的页面与较新的启用AJAX的项目混合的情况也很有用.有时您需要回发表单,并且您不希望丢失一些客户端状态值.
我有两个关于@JoinFormula和@OneToMany注释的问题:
如何用注释@JoinFormula和@OneToMany注释限制结果的数量?
我如何定义id表达式author = id中指的是Author.id?
Author {
@Id
private Long id;
@OneToMany
@JoinFormula(value = "SELECT a FROM Article a WHERE author = id AND schedule < CURRENT_TIMESTAMP()") // limit = 15
private List<Article> pastArticles;
}
Run Code Online (Sandbox Code Playgroud)像这样,即使我删除schedule <了条款的一部分,我仍然将pastArticles保持为空.
谢谢!
如何在不使用Hibernate类的情况下在JPA中映射Map?
我想用Java中的ehcache做一些我认为应该非常简单的事情,但是我花了足够的时间来挫败自己的文档......
将值写入磁盘永久缓存.关掉.
再次启动并读取该值.
这是我的Java函数:
private static void testCacheWrite() {
// create the cache manager from our configuration
URL url = TestBed.class.getClass().getResource("/resource/ehcache.xml");
CacheManager manager = CacheManager.create(url);
// check to see if our cache exits, if it doesn't create it
Cache testCache = null;
if (!manager.cacheExists("test")) {
System.out.println("No cache found. Creating cache...");
int maxElements = 50000;
testCache = new Cache("test", maxElements,
MemoryStoreEvictionPolicy.LFU, true, null, true, 60, 30,
true, Cache.DEFAULT_EXPIRY_THREAD_INTERVAL_SECONDS, null);
manager.addCache(testCache);
// add an element to persist
Element el = new Element("key", …Run Code Online (Sandbox Code Playgroud) 我的应用程序的Web UI层中有一个JPA实体实例.我想随时知道这个实体是否已经存在于数据库中,或者它是否仅存在于用户会话中.
它将在业务层,我会使用entitymanager.contains(Entity)方法,但在我的UI层中,我认为我需要一个额外的属性来指示实体是否已被保存.怎么实现呢?我正在考虑暂时关注选项:
有什么建议/其他建议吗?
我正在使用JPA 1与Hibernate 3.2实现,并希望坚持标准.
我不确定在设计程序的数据访问层(DAL)时如何命名数据存储类.
(通过数据存储类,我的意思是一个类,负责将持久化对象读入内存,或者持久保存内存中对象.)
根据两件事命名数据存储类似乎是合理的:
⇒ Banana可以调用加载对象的类,例如BananaSource.
我不知道如何处理第二点(即Source示例中的位).我见过不同的名词显然是出于这个目的使用的:
这些名称是否是任意的,或者每个名称背后是否有广泛接受的含义/语义差异?更具体地说,我想知道:
persistence datasource terminology data-access-layer naming-conventions
我知道一些软件商店已经通过使用int类型作为持久类的主键来烧毁.话虽如此,并非所有表格都超过20亿.事实上,大多数人没有.
那么,你们是否只将long类型用于映射到潜在大表的类或者每个持久类只是为了保持一致?什么是行业共识?
我会暂时搁置这个问题,以便您与我们分享您的成功/恐怖故事.
我正在开始一个新项目,我正在寻找一个非常好的ORM或非基于SQL的持久层.
对于这个项目,我真的不关心数据是如何持久化的,只要它可以以合理的速度查询和存储,最重要的是简单的查询.
应该无缝地处理并发(前端将在另一个层上,并且将有几个同时用户,但不一定处理相同的数据)并且我必须更少关注数据层(简单查询,自动懒惰)装载等)更好.
我还想不惜一切代价避免使用基于字符串的查询,因此支持LINQ或其他直观且可能强类型查询的工具会获得很大的好处.
最后使用POCO对象是我真正想要做的另一件事
这里是我评估的产品列表以及它们不适合的原因,只是为了让我看不到任何关于使用它们的建议:
我也看过MongoDB和CouchDB,但在这些情况下,相关对象的捕获看起来像是在做正确的事情之前需要进行太多的测试.此外,它们都不提供强类型查询.
提前感谢您的建议!
我有这两个简单的实体Something和Property.该Something实体与多对一关系Property,因此当我创建一个新Something行时,我分配一个现有的Property.
东西:
@Entity
@Table(name = "something")
public class Something implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(name = "name")
private String name;
@Column(name = "owner")
private String owner;
@ManyToOne
private Property property;
// getters and setters
@Override
public String toString() {
return "Something{" +
"id=" + getId() +
", name='" + getName() + "'" +
", owner='" + …Run Code Online (Sandbox Code Playgroud) persistence ×10
java ×7
hibernate ×4
jpa ×2
orm ×2
.net ×1
ajax ×1
c# ×1
datasource ×1
ehcache ×1
ehcache-2 ×1
int ×1
jooq ×1
long-integer ×1
mapping ×1
poco ×1
primary-key ×1
sqlbuilder ×1
state ×1
terminology ×1