hibernate中property标记的lazy属性允许按照以下链接延迟加载属性:http : //docs.jboss.org/hibernate/orm/3.3/reference/zh-CN/html/mapping.html#mapping-declaration -属性
lazy(可选-默认为false):指定在首次访问实例变量时应延迟获取此属性。它需要构建时字节码检测。
但是,当我尝试为我的其中一个属性设置lazy = true时,在此示例中它不会延迟加载:
休眠映射文件:
<hibernate-mapping package="org.hibernate.tutorial.domain">
<class name="Event" table="EVENTS" select-before-update="true">
<id name="id" column="EVENT_ID">
<generator class="native" />
</id>
<property name="date" type="timestamp" column="EVENT_DATE" />
<property name="title" lazy="true"/>
<set name="participants" table="PERSON_EVENT" inverse="true">
<key column="EVENT_ID" />
<many-to-many column="PERSON_ID" class="Person" />
</set>
</class>
</hibernate-mapping>
Run Code Online (Sandbox Code Playgroud)
程序:
public static void main(String[] args) {
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
session.beginTransaction();
Event event = (Event) session.get(Event.class, 135L);
session.getTransaction().commit();
System.out.println(event);
HibernateUtil.getSessionFactory().close();
}
Run Code Online (Sandbox Code Playgroud)
由休眠生成的查询:
Hibernate: select event0_.EVENT_ID as EVENT1_0_0_, event0_.EVENT_DATE as EVENT2_0_0_, event0_.title as title0_0_ from …
Run Code Online (Sandbox Code Playgroud) 我试图了解哪些更快从Java集合中访问元素,如ArrayList,LinkedList,HashSet,TreeSet,HashMap,TreeMap等.
从这个问题:适合快速获取和快速删除的java集合,我知道ArrayList将O(1)和TreeMap作为O(log n)
其中:Map/ArrayList:哪一个搜索元素更快,显示ArryList为O(n),HashMap为O(1),TreeMap为O(log n)
在哪里:为什么处理排序数组比处理未排序数组更快?说排序数组比未排序数组快.由于TreeMap中的元素已排序,那么我可以假设所有已排序的集合都比未排序的集合更快吗?
请帮助我理解哪些更快用于访问列表,集合,地图等实现的java集合中的元素.
我想了解下面给出的正则表达式:
"/login?(\\?.+)?"
Run Code Online (Sandbox Code Playgroud)
我已经阅读了Java文档,但我无法清楚地理解这个表达式的目的.
我知道它会查找一个以字符串开头的字符串/login
,然后是字符?(\\?.+)?
代表什么?请帮助我理解这一点.
根据Hibernate文档,
Hibernate映射的视图和基表之间没有区别.这在数据库级别是透明的,尽管某些DBMS不能正确支持视图,尤其是对于更新.有时您希望使用视图,但无法在数据库中创建视图(即使用旧模式).在这种情况下,您可以使用@ org.hibernate.annotations.Subselect将不可变和只读实体映射到给定的SQL子选择表达式:
@Entity
@Subselect("select item.name, max(bid.amount), count(*) "
+ "from item "
+ "join bid on bid.item_id = item.id "
+ "group by item.name")
@Synchronize( {"item", "bid"} ) //tables impacted
public class Summary {
@Id
public String getId() { return id; }
...
}
Run Code Online (Sandbox Code Playgroud)
声明表以与此实体同步,确保自动刷新正确发生,并且针对派生实体的查询不返回过时数据.可用作属性和嵌套映射元素.
我不清楚同步注释的声明在这里.自动刷新有什么问题?这里派生的实体是什么?为什么我们会得到过时的数据?同步注释如何解决此问题.
有人可以帮助我理解这一点.
我试图在显示标记标题键中使用应用程序资源属性.什么都没显示.请帮忙继续.我正在使用struts2.
我正在使用在线文档学习WSDL,因为WSDL
Ports
它提到:
一个端口不得指定多个地址。
端口不得指定地址信息以外的任何绑定信息。
给出的例子是:
<portType name="StockQuotePortType">
<operation name="GetLastTradePrice">
<input message="tns:GetLastTradePriceInput"/>
<output message="tns:GetLastTradePriceOutput"/>
</operation>
</portType>
Run Code Online (Sandbox Code Playgroud)
这个例子中的地址是什么?又是什么意思A port MUST NOT specify any binding information other than address information.
?请帮助我理解这些概念。
我正在阅读 Java Concurrency In Practice 一书,遇到了 CountDownLatch。
下面是给出的例子:
public class TestHarness {
public long timeTasks(int nThreads, final Runnable task)
throws InterruptedException {
final CountDownLatch startGate = new CountDownLatch(1);
final CountDownLatch endGate = new CountDownLatch(nThreads);
for (int i = 0; i < nThreads; i++) {
Thread t = new Thread() {
public void run() {
try {
startGate.await();
try {
task.run();
} finally {
endGate.countDown();
}
} catch (InterruptedException ignored) { }
}
};
t.start();
}
long start = System.nanoTime();
startGate.countDown(); …
Run Code Online (Sandbox Code Playgroud) 我有一个简单的逻辑Java,它检查端口是否已被使用:
public static boolean isPortInUse(int port)
{
ServerSocket socket = null;
try {
socket = new ServerSocket(port);
socket.setReuseAddress(true);
} catch (Exception e) {
return true;
}
finally
{
if (socket != null) {
try {
socket.close();
} catch (Exception e) {
return true;
}
}
}
return false;
}
Run Code Online (Sandbox Code Playgroud)
我是socket编程的新手,所以我无法理解"setReuseAddress"
这里方法的用途.我已经通过了这个链接,但我没有明确它的目的.
我正在使用Eclipse IDE,现在正计划创建一个简单的项目来创建Web服务程序。但是,我的eclpise中没有任何选项可以帮助我创建Web服务。
这是我完成时得到的详细信息Eclipse --> Help --> About Eclipse Platform
:
Eclipse Platform
Version: 3.8.1
Build id: debbuild
(c) Copyright Eclipse contributors and others 2000, 2012. All rights reserved.
Visit http://www.eclipse.org/platform
This product includes software developed by the
Apache Software Foundation http://www.apache.org/
Run Code Online (Sandbox Code Playgroud)
当我这样做的Project --> New --> Other --> Web Services -->
时候,我只有两个选择:
- Ant Files
- WSDL Files
Run Code Online (Sandbox Code Playgroud)
我正在寻找一个称为Web Service
创建新的Web服务的选项,但是我的日食缺少该选项。
我不想下载新的eclipse,所以我想到了要在我的eclipse中下载所有缺少的插件。
我已经看完这篇文章-> Eclipse:Web Services Option丢失了,但是答案并没有说明我需要设置什么确切的插件来解决我的问题。上面帖子中的评论之一说要遵循这样,You can do a help->install new software and install WST …
根据Hibernate文档,该属性的详细信息hibernate.order_updates
如下:
强制Hibernate按要更新的项的主键值对SQL更新进行排序.这将导致高度并发系统中更少的事务死锁.例如,真的 假
因此,通过将此属性设置为false,可以发生死锁.请帮助我理解这一点.
java ×9
hibernate ×3
web-services ×2
collections ×1
concurrency ×1
displaytag ×1
eclipse ×1
lazy-loading ×1
orm ×1
performance ×1
properties ×1
regex ×1
sockets ×1
struts2 ×1
wsdl ×1