Java注释用注释标记@Target以声明可以由该注释修饰的可能连接点.价值观TYPE,FIELD,METHOD,等的ElementType枚举是明确的,简单易懂.
为什么要@Target(ANNOTATION_TYPE)使用价值?带注释的注释有哪些优点?他们的贡献是什么?给我一个关于它如何工作以及为什么要使用它的想法的解释.一些已经存在且众所周知的使用示例也很棒.
我一直在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)
问题: …
我在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) 我有一个对话框,其中不包含页面加载的内容,我根据用户点击的链接动态设置对话框的内容.
<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 2.0并且已经定义了属性javax.faces.FACELETS_SKIP_COMMENTS来跳过JSF代码中的注释,因为有很多其他代码,deveploping注释等.但是我需要在客户端的浏览器中打印一些HTML注释,例如.用于为其他浏览器定义备用条件样式表.
请问有什么办法吗?因为我所有的尝试都失败了
我正在NetBeans 6.7.1中开发C++.当我按CTRL +空格进行自动完成时,只显示方法的签名.我正在使用JavaDoc来评论我的代码,但NetBeans没有显示它.我已经安装了Doxygen插件,但它只用于生成完整的文档.
有什么办法可以强制IDE显示签名和JavaDoc for C++吗?
我认为这不应该是一个问题,因为这个功能目前是为Java实现的.
非常感谢.
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)
非常感谢.
有一种情况.例如,我正在设计简单的博客.有文章和照片.用户可以将他们的评论添加到他们两个.所以当我用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不应该是这些对象的父级,它只是根据设计的扩展.
有没有办法如何在不改变设计的情况下坚持下去,拜托?非常感谢
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点?
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) 我的程序是用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++和Qt4.我写了一个包含3000行的图形程序,我发现保持代码简单,透明和结构良好是非常复杂的.我喜欢设计模式等,因为它们非常有效,有助于保持代码更简单,更透明.现在我要编写另一个"更大"的应用程序,但我希望有一个易于编辑的清晰代码,并且添加一些增强功能不会是大问题.
我正在寻找一些指南,模式,手册或经验,其中说明如何在图形应用程序中构建代码,以便在业务逻辑和未来编辑中进行测试(单元和集成),从而实现良好的结构.
如果本手册将针对C++和Qt,它会更好,但它不是主要要求.
谢谢你的提示.
我正在为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) 起初我应该说我从未见过任何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 …
c++ ×5
java ×4
jsf ×2
jsf-2 ×2
annotations ×1
c ×1
criteria ×1
drools ×1
eclipselink ×1
g++ ×1
haskell ×1
html ×1
javadoc ×1
jpa ×1
jpa-2.0 ×1
jpql ×1
linker ×1
memory-leaks ×1
mingw ×1
netbeans ×1
polymorphism ×1
primefaces ×1
qt4 ×1
sockets ×1
sql-order-by ×1
typeclass ×1
ubuntu ×1
winsock ×1