如何在HQL中编写"不存在"查询?我试图获得一个HQL不存在的查询,它返回与此Oracle SQL查询相同的结果:
select *
from SCHOOL a
where not exists (select 1
from STUDENT b
where B.SCHOOL_ID=a.id
and B.STATUS_ID not in (0,1,2,3,4))
Run Code Online (Sandbox Code Playgroud)
我的映射文件如下:
<!-- primary key ommitted -->
<set name="students"
cascade="all" fetch="select" lazy="false" >
<key column="SCHOOL_ID" />
<one-to-many class="com.companyname.Student" />
</set>
</class>
Run Code Online (Sandbox Code Playgroud)
<!-- primary key ommitted -->
<many-to-one name="school"
column="SCHOOL_ID"
class="com.companyname.School" fetch="join" lazy="false"/>
<many-to-one name="status"
class="com.companyname.Status" column="STATUS_ID" />
</class>
Run Code Online (Sandbox Code Playgroud)
我在School.hbm.xml文件中尝试了以下标记
<query name="myQuery">
<![CDATA[
from School s where not exists from Student st
where st.school_id=s.id and st.status.id not in (0,1,2,3,4)
]]> …
Run Code Online (Sandbox Code Playgroud) 我正在使用Android兼容性库,偶尔会变得很奇怪NullPointerException
:
java.lang.NullPointerException
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:960)
at android.support.v4.app.FragmentManagerImpl.performPendingDeferredStart(FragmentManager.java:768)
at android.support.v4.app.FragmentManagerImpl.startPendingDeferredFragments(FragmentManager.java:1104)
at android.support.v4.app.LoaderManagerImpl$LoaderInfo.onLoadComplete(LoaderManager.java:410)
at android.support.v4.content.Loader.deliverResult(Loader.java:103)
at android.support.v4.content.CursorLoader.deliverResult(CursorLoader.java:81)
at android.support.v4.content.CursorLoader.onStartLoading(CursorLoader.java:126)
at android.support.v4.content.Loader.startLoading(Loader.java:197)
at android.support.v4.app.LoaderManagerImpl$LoaderInfo.start(LoaderManager.java:262)
at android.support.v4.app.LoaderManagerImpl.doStart(LoaderManager.java:710)
at android.support.v4.app.Fragment.onStart(Fragment.java:981)
at android.support.v4.app.Fragment.performStart(Fragment.java:1332)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:906)
at android.support.v4.app.FragmentManagerImpl.attachFragment(FragmentManager.java:1240)
at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:612)
at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1416)
at android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:431)
at android.support.v4.app.FragmentPagerAdapter.finishUpdate(FragmentPagerAdapter.java:139)
at android.support.v4.view.ViewPager.populate(ViewPager.java:804)
at android.support.v4.view.ViewPager.setCurrentItemInternal(ViewPager.java:433)
at android.support.v4.view.ViewPager.setCurrentItemInternal(ViewPager.java:405)
at android.support.v4.view.ViewPager.setCurrentItem(ViewPager.java:386)
...
Run Code Online (Sandbox Code Playgroud)
显然,我做错了什么让它FragmentManager
进入这样一个可能会崩溃的状态,但我不知道是什么.在相关的代码中FragmentManagerImpl
没有提供我任何线索.我猜mActivity
是null
在某种程度上在代码中的那一点?但这似乎是不可能的,因为活动已经在屏幕上,我没有添加任何片段 - 只是在它们之间切换ViewPager
.
Url,Credentials在RestClient UI以及Curl中工作,因为当通过Spring RestTemplate访问相同内容时,我遇到"500"错误.
我使用以下代码:
MultiValueMap<String, Object> map = new LinkedMultiValueMap<String, Object>();
map.add("name", user);
map.add("password", password);
restTemplate.postForObject(url, request, Employee.class, map);
Run Code Online (Sandbox Code Playgroud)
请告诉我您的建议或意见以解决问题.
我得到了一个
导入无法解决
以下导入的错误,
import org.springframework.mail.MailSender;
import org.springframework.mail.SimpleMailMessage;
Run Code Online (Sandbox Code Playgroud)
我在类路径中有以下库,但我不确定哪个jar文件具有上述导入.有人有任何想法吗?
org.springframework.aop-3.1.1.RELEASE.jar
org.springframework.asm-3.1.1.RELEASE.jar
org.springframework.beans-3.1.1.RELEASE.jar
org.springframework.context-3.1.1.RELEASE.jar
org.springframework.core-3.1.1.RELEASE.jar
org.springframework.expression-3.1.1.RELEASE.jar
org.springframework.jdbc-3.1.1.RELEASE.jar
org.springframework.orm-3.1.1.RELEASE.jar
org.springframework.web-3.1.1.RELEASE.jar
Run Code Online (Sandbox Code Playgroud) 我使用Spring和Hibernate时遇到了一个奇怪的问题.我在hibernate.cfg.xml中开始使用Hibernate:
<property name="hbm2ddl.auto">create</property>
Run Code Online (Sandbox Code Playgroud)
它工作正常,Hibernate成功创建了数据库中所需的表.现在我使用Spring,我在applicationContext.xml中用于hibernate的bean看起来像这样:
<bean id="mySessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource" ref="myDataSource" />
<property name="mappingResources">
<list>
<value>domain/Entity.hbm.xml</value>
<value>domain/Service.hbm.xml</value>
<value>domain/User.hbm.xml</value>
<value>domain/Arcos.hbm.xml</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
<prop key="hibernate.hbm2dll.auto">create</prop>
</props>
</property>
</bean>
Run Code Online (Sandbox Code Playgroud)
我不得不在某些时候删除Hibernate创建的表,但Spring不会创建它们.我试过create-drop
而不是create
(以防万一有人问).我的数据库模式已经改变,因为我使用了Hibernate并且我getBeans("...");
在我的代码中使用了很多,所以有点困扰我只重用我的Hibernate版本来创建表.我也可以手工创建表,但是使用这些框架有什么意义呢?
我确定我在某处做错了什么,但我找不到它.控制台提示错误,指出没有名为"表名" 的表,因此它成功连接到数据库.
谢谢你的时间 :)
嗨伙计们,我在这里遇到一个奇怪的问题,我在控制器类中使用JPA,Hibernate和Spring MVC,当我在Web浏览器中测试它们时,所有方法都很有效除了:public String getModuleFormation(long id)返回一个对象的方法,它给我以下错误:
org.hibernate.LazyInitializationException: could not initialize proxy - no Session
Run Code Online (Sandbox Code Playgroud)
作为一个根本原因,但昨天我尝试了它在localhost中没有问题:45045/GestionModules/detail/xx URL请问什么会导致这个问题以及解决方案是什么,谢谢detail.jsp:
<c:if test="${!empty detailModule}">
${detailModule.idModule}
${detailModule.libModule}
</c:if>
Run Code Online (Sandbox Code Playgroud)
POJO Class + JPA:
@Entity
@Table(name="ModuleFormation")
public class ModuleFormation {
private long idModule;
private String libModule;
public ModuleFormation() {
// TODO Auto-generated constructor stub
}
public ModuleFormation(String libModule) {
this.libModule = libModule;
}
@Id
@GeneratedValue(strategy = GenerationType.AUTO, generator = "seqModule")
@SequenceGenerator(name="seqModule", sequenceName = "seqModuleFormation")
@Column(name="idModule")
public long getIdModule() {
return this.idModule;
}
public void setIdModule(long idModule) {
this.idModule = …
Run Code Online (Sandbox Code Playgroud)