小编Gai*_*aim的帖子

@Target(ElementType.ANNOTATION_TYPE)的工作原理

Java注释用注释标记@Target以声明可以由该注释修饰的可能连接点.价值观TYPE,FIELD,METHOD,等的ElementType枚举是明确的,简单易懂.

为什么@Target(ANNOTATION_TYPE)使用价值?带注释的注释有哪些优点?他们的贡献是什么?给我一个关于它如何工作以及为什么要使用它的想法解释.一些已经存在且众所周知的使用示例也很棒.

java annotations

52
推荐指数
2
解决办法
5万
查看次数

JPA2:不区分大小写,就像匹配任何地方一样

我一直在JPA 1.0(Hibernate驱动程序)中使用Hibernate Restrictions.定义了Restrictions.ilike("column","keyword", MatchMode.ANYWHERE)哪些测试关键字是否匹配列的任何位置,并且它不区分大小写.

现在,我使用JPA 2.0和EclipseLink作为驱动程序,因此我必须使用"Restrictions"内置JPA 2.0.我发现CriteriaBuilder和方法like,我也发现了如何使它匹配任何地方(尽管它是令人讨厌和手动),但我仍然没有想出如何做它不区分大小写.

我目前有一个很好的解决方案:

CriteriaBuilder builder = em.getCriteriaBuilder();
CriteriaQuery<User> query = builder.createQuery(User.class);
EntityType<User> type = em.getMetamodel().entity(User.class);
Root<User> root = query.from(User.class);

// Where   
// important passage of code for question  
query.where(builder.or(builder.like(root.get(type.getDeclaredSingularAttribute("username", String.class)), "%" + keyword + "%"),
        builder.like(root.get(type.getDeclaredSingularAttribute("firstname", String.class)), "%" + keyword + "%"),
        builder.like(root.get(type.getDeclaredSingularAttribute("lastname", String.class)), "%" + keyword + "%")
        ));

// Order By
query.orderBy(builder.asc(root.get("lastname")),
            builder.asc(root.get("firstname")));

// Execute
return em.createQuery(query).
            setMaxResults(PAGE_SIZE + 1).
            setFirstResult((page - 1) * PAGE_SIZE).
            getResultList();
Run Code Online (Sandbox Code Playgroud)

问题: …

java criteria eclipselink hibernate-criteria jpa-2.0

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

MinGW链接器错误:winsock

我在Windows上使用MinGW编译器来编译带有套接字的C++应用程序.我的链接命令如下:

g++.exe -Wall -Wno-long-long -pedantic -lwsock32 -o dist/Windows/piskvorky { there are a lot of object files }
Run Code Online (Sandbox Code Playgroud)

而我也试过了

g++.exe -Wall -Wno-long-long -pedantic -lws2_32 -o dist/Windows/piskvorky { there are a lot of object files }
Run Code Online (Sandbox Code Playgroud)

但在这两种情况下我都会收到此错误:

build/Windows/MinGW-Windows/src/utils/tcpunit.o:tcpunit.cpp:(.text+0x33): undefined reference to `closesocket@4'
build/Windows/MinGW-Windows/src/utils/tcpunit.o:tcpunit.cpp:(.text+0xd0): undefined reference to `send@16'
build/Windows/MinGW-Windows/src/utils/tcpunit.o:tcpunit.cpp:(.text+0x1ee): undefined reference to `recv@16'
build/Windows/MinGW-Windows/src/utils/tcpdevice.o:tcpdevice.cpp:(.text+0x184): undefined reference to `WSAStartup@8'
build/Windows/MinGW-Windows/src/utils/tcpdevice.o:tcpdevice.cpp:(.text+0x1a5): undefined reference to `closesocket@4'
build/Windows/MinGW-Windows/src/utils/tcpdevice.o:tcpdevice.cpp:(.text+0x1cb): undefined reference to `closesocket@4'
build/Windows/MinGW-Windows/src/utils/tcpdevice.o:tcpdevice.cpp:(.text+0x1d3): undefined reference to `WSACleanup@0'
build/Windows/MinGW-Windows/src/utils/tcpdevice.o:tcpdevice.cpp:(.text+0x6fe): undefined reference to `bind@12'
build/Windows/MinGW-Windows/src/utils/tcpdevice.o:tcpdevice.cpp:(.text+0x724): undefined reference to `listen@8' …
Run Code Online (Sandbox Code Playgroud)

c++ linker mingw winsock

46
推荐指数
2
解决办法
9万
查看次数

Primefaces如何更新对话框中的内容并保持对话框居中?

我有一个对话框,其中不包含页面加载的内容,我根据用户点击的链接动态设置对话框的内容.

<p:dialog widgetVar="dlg" modal="true" id="dialog">
    <p:panel id="fullArticle">
        <h:outputText value="#{content.newsArticle}" escape="false" />
    </p:panel>
 </p:dialog>
...
...
<p:commandLink value="Read more" actionListener="#{content.getFullArticle}" onclick='dlg.show();' update=":fullArticle">
    <f:attribute name="contentId" value="#{news.contentId}" />
</p:commandLink>
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是,当您单击"阅读更多"链接时,它会显示对话框,但对话框不在页面的中心.如果我将commandLink上的udpate属性更改为update=":dialog",则对话框会闪烁,就好像它正在打开然后立即关闭一样.

如何更新对话框并使其以动态内容为中心?

jsf primefaces jsf-2

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

JSF显示HTML注释

我正在使用JSF 2.0并且已经定义了属性javax.faces.FACELETS_SKIP_COMMENTS来跳过JSF代码中的注释,因为有很多其他代码,deveploping注释等.但是我需要在客户端的浏览器中打印一些HTML注释,例如.用于为其他浏览器定义备用条件样式表.

请问有什么办法吗?因为我所有的尝试都失败了

html jsf jsf-2

11
推荐指数
3
解决办法
4604
查看次数

Netbeans C/C++ JavaDoc代码完成

我正在NetBeans 6.7.1中开发C++.当我按CTRL +空格进行自动完成时,只显示方法的签名.我正在使用JavaDoc来评论我的代码,但NetBeans没有显示它.我已经安装了Doxygen插件,但它只用于生成完整的文档.

有什么办法可以强制IDE显示签名和JavaDoc for C++吗?

我认为这不应该是一个问题,因为这个功能目前是为Java实现的.

非常感谢.

c c++ netbeans javadoc code-completion

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

如何在JPQL中按表达式编写Order

PostgreSQL和MySQL提供ORDER BY在SQL查询中将表达式写入子句.它允许按某些列对项目进行排序,但特殊值位于顶部.SQL看起来像这样.(适用于Postgres)

select * from article order by id = 4, id desc;
Run Code Online (Sandbox Code Playgroud)

现在我想在JPQL中编写它,但它不起作用.我的尝试是:

@NamedQuery(name = "Article.special", query = "SELECT a FROM Article a ORDER BY ( a.id = :id ) DESC, a.id DESC")
Run Code Online (Sandbox Code Playgroud)

这是带有Hibernate驱动程序的JPA 1.0.应用程序服务器在部署时抛出此异常.

ERROR [SessionFactoryImpl] Error in named query: Article.special
org.hibernate.hql.ast.QuerySyntaxException: unexpected AST node: = near line 1, column 73 [SELECT a FROM cz.cvut.fel.sk.model.department.Article a ORDER BY ( a.id = :id ) DESC, a.id DESC]
 at org.hibernate.hql.ast.QuerySyntaxException.convert(QuerySyntaxException.java:54)
Run Code Online (Sandbox Code Playgroud)

非常感谢.

sql-order-by jpql

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

如何在JPA中定义多态性

有一种情况.例如,我正在设计简单的博客.有文章和照片.用户可以将他们的评论添加到他们两个.所以当我用Java编写它时,它看起来像这样:

public interface Commentable { ... }

public class Article implements Commentable { ... }

public class Photo implements Commentable { ... }

public class Comment { 
   ...
   private Commentable commentTo; 
}
Run Code Online (Sandbox Code Playgroud)

这很清楚,我希望设计是正确的.但现在我想将它保存在数据库中,我想使用JPA注释.主要是我必须使用JPA 1.0,但如果没有解决方案,我想知道如何在JPA 2.0中使用它.我发现有一种经典继承的方法,但我认为Commentable不应该是这些对象的父级,它只是根据设计的扩展.

有没有办法如何在不改变设计的情况下坚持下去,拜托?非常感谢

java polymorphism database-design jpa

5
推荐指数
1
解决办法
3016
查看次数

Drools:时间限制规则

Drools 文档提到规则可以使用date-effective和等属性date-expires来指定绝对规则有效期.

例如

rule "Date-restricted rule"
    date-effective "20.2.2013 8:00"      # 8 AM
    date-expires   "20.2.2013 16:00"     # 4 PM
    when
    then
end
Run Code Online (Sandbox Code Playgroud)

Drools还支持使用interval as timer(int:)和cron as 定期重复的规则,timer(cron:)但这意味着规则在这些点中被触发.

题:

如果有任何选项如何指定具有时间限制的定期可用(未触发)规则,我感兴趣.例如,让我们想象某个公司的营业时间 - 只能在正式工作期间而不是在工作时间之后执行操作.

我想要这样的东西,但这不是Drools的有效规则

rule "Time-restricted rule"
    time-effective "8:00"      # 8 AM
    time-expires   "16:00"     # 4 PM
    when
    then
end
Run Code Online (Sandbox Code Playgroud)

是否可以将此规则延长至周一至周五上午8点至下午4点?


解决方案(由Esteban Aliverti提供):

Drools没有直接支持基于时间的关键字,但它们使用Quartz库提供了更强大的日历机制.StatefulSession或者WorkingMemory通过StatelessSession具有定义这些日历的方法创建,这些日历可以限制可以触发规则的日期和时间.

示例: 规则定义

rule "Business hours only"
    calendars "business-hours"
    when
        SomeAttachedClass()
    then
        System.out.println("Rule is …
Run Code Online (Sandbox Code Playgroud)

java drools

5
推荐指数
1
解决办法
7076
查看次数

G ++ 4.4编译错误,较低版本有效

我的程序是用C++编写的,可以在Ubuntu 9.04上使用g ++ 4.3.4和Solaris OS with g ++ 3.4.3成功编译.现在我已将Ubuntu升级到版本9.10,将g ++升级到版本4.4.1.现在编译器调用STL中的错误.

/usr/include/c++/4.4/bits/stl_deque.h: In member function ‘void std::deque<_Tp, _Alloc>::swap(std::deque<_Tp, _Alloc>&)’:
In file included from /usr/include/c++/4.4/deque:65,
/usr/include/c++/4.4/bits/stl_deque.h:1404: error: ‘swap’ is not a member of ‘std’
/usr/include/c++/4.4/bits/stl_deque.h:1405: error: ‘swap’ is not a member of ‘std’
/usr/include/c++/4.4/bits/stl_deque.h:1406: error: ‘swap’ is not a member of ‘std’
/usr/include/c++/4.4/bits/stl_deque.h:1407: error: ‘swap’ is not a member of ‘std’
Run Code Online (Sandbox Code Playgroud)

我不知道如何解决它,如果可能stl包含一个bug.你能帮我吗?

非常感谢所有的建议.

c++ ubuntu g++

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

如何编写图形程序

我学过C++和Qt4.我写了一个包含3000行的图形程序,我发现保持代码简单,透明和结构良好是非常复杂的.我喜欢设计模式等,因为它们非常有效,有助于保持代码更简单,更透明.现在我要编写另一个"更大"的应用程序,但我希望有一个易于编辑的清晰代码,并且添加一些增强功能不会是大问题.

我正在寻找一些指南,模式,手册或经验,其中说明如何在图形应用程序中构建代码,以便在业务逻辑和未来编辑中进行测试(单元和集成),从而实现良好的结构.

如果本手册将针对C++和Qt,它会更好,但它不是主要要求.

谢谢你的提示.

c++ qt4 code-structure

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

Unix socket:hostent使内存泄漏

我正在为TCP连接编写客户端,从IP到socket_addr的转换会导致内存泄漏.

有以下过程:

#include <netdb.h>
#include <sys/socket.h>
#include <sys/types.h>

/** there is some code like method header etc. */

hostent * host = gethostbyaddr( ip, 4, AF_INET ); // ip is char[4], I use IPv4

if ( !host ) return -2; // bad IP

netSocket = socket( AF_INET, SOCK_STREAM, IPPROTO_TCP );
if ( netSocket == -1 ) return -3; // error during socket opening

sockaddr_in serverSock;
serverSock.sin_family = AF_INET;
serverSock.sin_port = htons( port );
memcpy( &( serverSock.sin_addr ), host->h_addr, host->h_length ); …
Run Code Online (Sandbox Code Playgroud)

c++ sockets memory-leaks

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

对象排序如何工作?

起初我应该说我从未见过任何Haskell代码.现在我有一个算法,我必须用另一种语言实现.不幸的是,这个算法依赖于一些Haskell特性和功能,所以我想请求你帮忙,这是如何能够正确实现它的?

有代码:

data Utree = Tree[Utree]

instance Eq Utree where
    Tree(p) == Tree(q) = p == q
instance Ord Utree where
    Tree(p) <= Tree(q) = p <= q

norm(Tree(p)) = Tree(sort(map norm p))


iso p q = (norm p) == (norm q)

sort[] = []
sort(a:x) = ins a (sort x)

ins a [] = [a]
ins a (b:x)
   | a <= b = a:b:x
   | a > b = b:(ins a x)
Run Code Online (Sandbox Code Playgroud)

现在,我如何接受它.UTree是某种使用列表来保存子树的树结构.(相应应该是)定义的排序是插入排序,这很清楚.

但是,使用排序Eq一个Ord …

haskell typeclass

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