小编jas*_*ace的帖子

如何在休眠标准中订购oneToMany连接表

假设我有一个班级妈妈,他们有一个toToMany映射到小猫

@Entity
@org.hibernate.annotations.Entity(dynamicUpdate = true)
@Table(name = "Mother")

.....

@OneToMany(fetch = FetchType.LAZY, targetEntity=Kittens.class, cascade=CascadeType.ALL)
@JoinColumn(name="motherId")
private List<Kittens> kittens;
Run Code Online (Sandbox Code Playgroud)

我使用标准Api来提供列表

Criteria criteria = this.getSession().createCriteria(Mother.class);
Criterion MotherType = Restrictions.eq("type", "domesticated");
criteria.add(MotherType)
.addOrder(Order.asc("motherName"))
.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY)
.setFetchMode("kittens", FetchMode.JOIN)
// .addOrder(Order.asc("kittens.kittenName"));
List test = criteria.list();
Run Code Online (Sandbox Code Playgroud)

工作正常,直到我尝试添加小猫字段kittenName的顺序

我也尝试在Kitten @OneToMany(...等)下添加@OrderBy(value ="kittenName")注释,该工作正常,直到你使用条件API,这个顺序将在sql中的任何其他order语句之前.

提前干杯以获得任何帮助......

hibernate criteria

36
推荐指数
1
解决办法
4万
查看次数

Java文本分析库

我正在寻找一种java驱动的解决方案来满足分析句子的要求,以记录关键词是正面还是负面使用.

即关键词可能是'cabbages'和句子: -

'我喜欢卷心菜但不喜欢豌豆'

我想要一个java文本分析器来记录这个积极的东西.lucene(Hibernate-Search)库可以用于此吗?

有什么想法吗?

java text analysis text-analysis

13
推荐指数
1
解决办法
2万
查看次数

Hibernate Criteria与maxresults的n + 1问题

使用hibernate ctiteria我想选择一个对象,它与oneToMany对象列表相关联.我想通过这个列表分页,避免可怕的hibernate n + 1选择问题

这是一个有效的解决方案,需要11个数据库访问10个父对象.

Criteria criteria = this.getSession().createCriteria(Mother.class);
criteria.addOrder(Order.asc("title"))
.setMaxResults(details.getMaxRows())
.setFirstResult(details.getStartResult())
.setFetchMode("kittens", FetchMode.SELECT);
List test = criteria.list();
Run Code Online (Sandbox Code Playgroud)

这里是一个只执行一个sql语句(hurray)但不能处理分页的解决方案,即父对象上的setMaxResults和setFirstResult不正确Mother(boo)

Criteria criteria = this.getSession().createCriteria(Mother.class);
criteria.addOrder(Order.asc("title"))
.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY)
.setMaxResults(details.getMaxRows())
.setFirstResult(details.getStartResult())
.setFetchMode("kittens", FetchMode.JOIN);
List test = criteria.list();
Run Code Online (Sandbox Code Playgroud)

这似乎是一个常见的要求,但我已经挖掘出一个没有运气的解决方案.

任何接受者?

hibernate criteria

8
推荐指数
1
解决办法
3586
查看次数

在Hiberate条件中使用setFetchMode时,如何在oneToMany表上设置限制

我正在努力创建一个使用setFetchMode(... SELECT)的Hibernate条件查询,并对返回的子记录设置限制.如果我按照建议使用creteAlias,它会产生一个内部连接,从而使得准确的分页几乎不可能.

代码如下: -

Criteria criteria = this.getSession().createCriteria(Mother.class);
criteria.addOrder(Order.asc("title"))
// .createAlias("children", "childrenAlias") had to remove
.add(Restrictions.eq("childAge", "5")) // how do I reference childAge?
.setMaxResults(details.getMaxRows())
.setFirstResult(details.getStart())
.setFetchMode("children", FetchMode.SELECT);
Run Code Online (Sandbox Code Playgroud)

hibernate criteria

8
推荐指数
1
解决办法
1万
查看次数

对于所见即所得的编辑器来说,jsoup Whitelist放松模式太严格了

我正在尝试使用jsoup来清理从我的客户端中的一个wysiwyg发布的html(当它发生时)

松弛模式看起来不够宽松,因为默认情况下它会剥离span元素和任何样式属性.

例如

String text = "<p style="color: #ff0000;">foobar</p>";

   Jsoup.clean(text, Whitelist.relaxed());
Run Code Online (Sandbox Code Playgroud)

会输出

<p>foobar</p>
Run Code Online (Sandbox Code Playgroud)

<span>foobar</span>
Run Code Online (Sandbox Code Playgroud)

将完全删除.

有没有人有任何使用Jsoup消除XSS攻击可能性的经验,仍然允许上述元素和属性通过?

编辑:我已经使用以下内容了.任何人都可以建议这是多么脆弱吗?

Jsoup.clean(pitch, Whitelist.relaxed().addTags("span").addAttributes(":all","style"));
Run Code Online (Sandbox Code Playgroud)

编辑2:是否有人在生产中使用了owasp库.它看起来正确消毒,同时保留正确的样式.OWASP

java security xss wysiwyg jsoup

8
推荐指数
1
解决办法
4149
查看次数

使用spring进行Servlet映射

在我的web.xml中,我有以下映射

<servlet-mapping>
    <servlet-name>mySite</servlet-name>
    <url-pattern>*.html</url-pattern> 
</servlet-mapping>

<servlet-mapping>
    <servlet-name>mySite</servlet-name>
    <url-pattern>/articles/*</url-pattern> 
</servlet-mapping>
Run Code Online (Sandbox Code Playgroud)

目前它处理文件扩展名为.html的网址.但是,我希望能够处理http:// localhost:8080/MySite-Web/articles/testMe类型的URL,即任何没有文章扩展名的文件扩展名的路径.

我试过的弹簧贴图是.

@RequestMapping(value = "/articles/*")
public ModelAndView getArticles(HttpServletResponse response, HttpServletRequest request
        ) throws java.lang.Exception {

    System.out.println("Handle any path prefixed with /articles/ ");
    return null;
}
Run Code Online (Sandbox Code Playgroud)

在我的Spring配置中,我使用以下内容

<bean id="viewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver">
    <property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
</bean>
Run Code Online (Sandbox Code Playgroud)

编辑:

这是Dispatcher Servlet映射

<servlet>
        <description>
        servlet</description>
        <servlet-name>MySite</servlet-name>
        <servlet-class>
        org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:MySite-web-context.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
Run Code Online (Sandbox Code Playgroud)

这是MySite-web.context.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:tx="http://www.springframework.org/schema/tx" 
    xmlns:aop="http://www.springframework.org/schema/aop"
    xmlns:jee="http://www.springframework.org/schema/jee" 
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:lang="http://www.springframework.org/schema/lang"
    xmlns:security="http://www.springframework.org/schema/security"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
      http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
      http://www.springframework.org/schema/aop
      http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
      http://www.springframework.org/schema/tx
      http://www.springframework.org/schema/tx/spring-tx-2.5.xsd …
Run Code Online (Sandbox Code Playgroud)

java spring servlets

6
推荐指数
1
解决办法
1万
查看次数

具有Criteria限制的Hibernate搜索返回不正确的计数

结果列表很完美,但getResultSize()不正确.

我已经敲了一些代码来说明.

Criteria criteria2 = this.getSession().createCriteria(Film.class);                      

Criterion genre = Restrictions.eq("genreAlias.genreName", details.getSearch().getGenreName());
criteria2.createAlias("genres", "genreAlias", CriteriaSpecification.INNER_JOIN);
criteria2.add(genre);    

criteria2.setMaxResults(details.getMaxRows())
.setFirstResult(details.getStartResult());

FullTextEntityManager fullTextEntityManager = org.hibernate.search.jpa.Search.createFullTextEntityManager(entityManager);

org.apache.lucene.queryParser.QueryParser parser2 = new QueryParser("title", new StopAnalyzer() );

org.apache.lucene.search.Query luceneQuery2 = parser2.parse( "title:"+details.getSearch()");

FullTextQuery fullTextQuery = fullTextEntityManager.createFullTextQuery( luceneQuery2, Film.class);
fullTextQuery.setCriteriaQuery(criteria2);

fullTextQuery.getResultList()); // Returns the correctly filtered list
fullTextQuery.getResultSize()); // Returns the retsult size without the genre resrtiction
Run Code Online (Sandbox Code Playgroud)

java hibernate hibernate-search

4
推荐指数
1
解决办法
3177
查看次数

recaptcha通过http而不是https进行调用

我在java jsp设置上使用recaptcha.我在我的jsp中使用以下代码

<%@ page import="net.tanesha.recaptcha.ReCaptcha"%>
<%@ page import="net.tanesha.recaptcha.ReCaptchaFactory"%>


<%
ReCaptcha c = ReCaptchaFactory.newReCaptcha("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXXXXXX", false);
out.print(c.createRecaptchaHtml(null, null));
out.flush();
%>
Run Code Online (Sandbox Code Playgroud)

但是该网站使用https,因此我在IE上收到"仅显示安全内容"消息.

如果我查看源recaptcha已生成以下内容

<script type="text/javascript" src="http://api.recaptcha.net/challenge?k=XXXXXXXXXXXXXXXXXXXXXXX"></script>
Run Code Online (Sandbox Code Playgroud)

如何强制重新使用https而不是http?

java https jsp recaptcha

0
推荐指数
1
解决办法
3590
查看次数