这是一个示例实体:
public class Account{
@Id
Long id
Double remaining;
@ManyToOne
AccountType type
}
public class AccountType{
@Id
Long id;
String name;
}
Run Code Online (Sandbox Code Playgroud)
现在我使用Join创建一个条件查询,如下所示:
CriteriaBuilder criteriaBuilder = getEntityManager().getCriteriaBuilder();
CriteriaQuery criteriaQuery = criteriaBuilder.createquery();
Root<Account> accountRoot = criteriaQuery.from(Account.class);
Join<Account, AccountType> typeJoin = accountRoot.join(Account_.type);
criteriaQuery.multiSelect(
typeJoin,
criteriaBuilder.sum(accountRoot.get(Account_.remaining))
);
criteriaQuery.groupBy(typeJoin);
Query query = getEntityManager().createQuery(criteriaQuery);
query.getResultList();
Run Code Online (Sandbox Code Playgroud)
上面的代码生成如下的Sql命令:
select accType.id, accType.name, sum(acc.remaining)
from account acc join accType on acc.accounttype_id = accType.id
group by accType.id
Run Code Online (Sandbox Code Playgroud)
上面的代码在PosgreSQL中工作,但无法在Oracle中运行,因为在其中选择未出现在group by子句中的accType.name.
更新:
我认为我的问题不清楚.我的问题不是关于PostgreSQL或Oracle的行为group by.我的问题是:
我使用typeJoinin group by …
我使用jsoup保护我的应用程序免受XSS攻击.我得到所有的输入参数,并在那上做Jsoup.clean.但我有一个问题.
它删除所有内联样式表!为什么?我在我的应用程序中有一部分用户可以编写文本并将其作为公告发布.他/她通过TinyMCE写他/她的文本,并在用户文本中添加一些html和样式表.在下面你可以看到tinymce创建的示例文本:
用户输入: Center Aligned Text
TinyMCE结果:<p style="text-align: center;">Center Aligned Text</p>
Jsoup.clean(text, Whitelist.relaxed())输出:<p>Center Aligned Text</p>
正如可以看到Jsoup删除风格
标签.我怎么能说它不删除简单的CSS?
谢谢.
我有一个这样的链接:http://localhost:8080/ESA/login.jsp?login=failed
在上面的链接结束时设置一个名称login和值的参数failed.
我如何在带有struts的jsp页面中使用此参数if tag.我使用以下代码,但它不起作用.
<s:if test="%{#parameters.login='failed'}">
<div class="error">
<s:text name="user.login.failed"></s:text>
</div>
</s:if>
Run Code Online (Sandbox Code Playgroud) 我有一个xhtml页面,在其中我使用存储在辅助bean中的信息.但是我需要在xhtml使用之前在bean构造中做一些操作.该操作包括从数据库中检索数据.
然后我使用一个方法进行此操作,并将其命名为search@PostConstruct并对其进行注释.但是当我调用我的xhtml页面时,我得到以下异常:
type Exception report
message An error occurred performing resource injection on managed bean MemberSearchControler
description The server encountered an internal error that prevented it from fulfilling this request.
exception
javax.servlet.ServletException: An error occurred performing resource injection on managed bean MemberSearchControler
javax.faces.webapp.FacesServlet.service(FacesServlet.java:659)
root cause
com.sun.faces.mgbean.ManagedBeanCreationException: An error occurred performing resource injection on managed bean MemberSearchControler
com.sun.faces.mgbean.BeanBuilder.invokePostConstruct(BeanBuilder.java:227)
com.sun.faces.mgbean.BeanBuilder.build(BeanBuilder.java:103)
com.sun.faces.mgbean.BeanManager.createAndPush(BeanManager.java:409)
com.sun.faces.mgbean.BeanManager.create(BeanManager.java:269)
com.sun.faces.el.ManagedBeanELResolver.resolveBean(ManagedBeanELResolver.java:244)
com.sun.faces.el.ManagedBeanELResolver.getValue(ManagedBeanELResolver.java:116)
com.sun.faces.el.DemuxCompositeELResolver._getValue(DemuxCompositeELResolver.java:176)
com.sun.faces.el.DemuxCompositeELResolver.getValue(DemuxCompositeELResolver.java:203)
org.apache.el.parser.AstIdentifier.getValue(AstIdentifier.java:69)
org.apache.el.parser.AstValue.getValue(AstValue.java:112)
org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:109)
javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:194)
javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:182)
javax.faces.component.UIData.getValue(UIData.java:732)
javax.faces.component.UIData.getDataModel(UIData.java:1811)
javax.faces.component.UIData.setRowIndexWithoutRowStatePreserved(UIData.java:484)
javax.faces.component.UIData.setRowIndex(UIData.java:473)
com.sun.faces.renderkit.html_basic.TableRenderer.encodeBegin(TableRenderer.java:82)
javax.faces.component.UIComponentBase.encodeBegin(UIComponentBase.java:864)
javax.faces.component.UIData.encodeBegin(UIData.java:1133)
javax.faces.component.UIComponent.encodeAll(UIComponent.java:1894) …Run Code Online (Sandbox Code Playgroud) 我将在我的 webapp 中通过 java 邮件发送邮件。我写了一个代码并通过 gmail 帐户测试它,它工作正常。然后我用 gmail 信息替换我的主机 smtp 详细信息并进行测试。哎呀,它返回我的以下异常:
javax.mail.MessagingException: 504 5.5.2 <rasta-PC>: Helo command rejected: need fully-qualified hostname
at com.sun.mail.smtp.SMTPTransport.issueCommand(SMTPTransport.java:2099)
at com.sun.mail.smtp.SMTPTransport.helo(SMTPTransport.java:1490)
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:662)
at javax.mail.Service.connect(Service.java:367)
at javax.mail.Service.connect(Service.java:226)
at javax.mail.Service.connect(Service.java:175)
at javax.mail.Transport.send0(Transport.java:253)
at javax.mail.Transport.send(Transport.java:124)
at util.MailUtil.sendViaSSL(MailUtil.java:43)
at control.member.AddMemberControl.add(AddMemberControl.java:107)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.el.parser.AstValue.invoke(AstValue.java:278)
at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:274)
at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105)
at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:87)
at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
at javax.faces.component.UICommand.broadcast(UICommand.java:315)
at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:790)
at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1282)
at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:198)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:646)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at …Run Code Online (Sandbox Code Playgroud)