小编Kev*_*sox的帖子

@GeneratedValue和@GenericGenerator之间的区别

有时候我会把它们放在一起,有时候只有它们......有时候它们似乎也是这样.

有什么不同?

这是三个例子.他们有什么不同的做法?为什么我不能只为所有这些使用@GeneratedValue?

例1

@Id
@GeneratedValue(generator="increment")
@GenericGenerator(name="increment", strategy = "increment") 
Long id;
Run Code Online (Sandbox Code Playgroud)

例2

@Id @GeneratedValue(strategy=GenerationType.SEQUENCE)
private int userId;
Run Code Online (Sandbox Code Playgroud)

例3

@ElementCollection
@JoinTable(name="Address",
   joinColumns=@JoinColumn(name="user_id")
)
@GenericGenerator(name="hilo-gen", strategy="hilo")
@CollectionId(columns = @Column(name="Address_id"), generator = "hilo-gen", type = @Type(type="long"))
Collection<Addr> listOfAddresses = new ArrayList<Addr>();
Run Code Online (Sandbox Code Playgroud)

java orm hibernate

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

JPQL限制查询

如何限制JPQL命名查询的选择查询?我需要在查询级别本身而不是在java层中完成限制!我正在尝试使用

@NamedQueries(value = {
        @NamedQuery(name = UserNotification.QueryName.NOTIFICATION_DISPLAYED,
                    query = "SELECT un FROM UserNotification un " +
                            "WHERE un.orgId IN (:orgList) " +
                            "AND un.user.id = :userId LIMIT 5")
Run Code Online (Sandbox Code Playgroud)

但是徒劳!

请建议

java limit jpql jpa-2.0

33
推荐指数
3
解决办法
5万
查看次数

年份中的Java毫秒数

我正在使用毫秒进行Java中的日期计算,并注意到以下问题:

private static final int MILLIS_IN_SECOND = 1000;
    private static final int SECONDS_IN_MINUTE = 60;
    private static final int MINUTES_IN_HOUR = 60;
    private static final int HOURS_IN_DAY = 24;
    private static final int DAYS_IN_YEAR = 365; //I know this value is more like 365.24...
    private static final long MILLISECONDS_IN_YEAR = MILLIS_IN_SECOND * SECONDS_IN_MINUTE * MINUTES_IN_HOUR * HOURS_IN_DAY * DAYS_IN_YEAR;


System.out.println(MILLISECONDS_IN_YEAR);  //Returns 1471228928
Run Code Online (Sandbox Code Playgroud)

我知道1年大约是= 31,556,952,000毫秒,所以我的乘法不知何故.

谁能指出我做错了什么?我应该用多久?

java

26
推荐指数
7
解决办法
4万
查看次数

可以在另一个查询的结果集上选择HQL吗?

可以在另一个查询的结果集上选择HQL吗?
例如:

SELECT COUNT(*) FROM (SELECT * FROM Table)
Run Code Online (Sandbox Code Playgroud)


我可以在SQL中做到这一点,但是当我在HQL中尝试上面但它只是向我显示语法错误"意外令牌:(靠近第1行,第22列......"

java hibernate hql subquery

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

从Java中的Annotation获取默认元素值

我创建了自己的注释,我通过反射在我的代码中做出决定.注释具有为其唯一元素设置的默认值.有没有办法可以通过反射访问默认值?

PageableRequestMapping.java(注释)

package org.tothought.controllers.annotations;

import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;

@Retention(RetentionPolicy.RUNTIME)
public @interface PageableRequestMapping {
    String variablePath() default "/";
}
Run Code Online (Sandbox Code Playgroud)

Psuedo代码检索默认值

private int parsePageNumber(StringBuffer requestURL,
        PageableRequestMapping pageableRequestMapping) {

        String variablePath = pageableRequestMapping.variablePath();

    //Psuedo code doesn't work in Java, included to illustrate intentions   
        if(variablePath.equalsIgnoreCase(pageableRequestMapping.variablePath().default())){
           //handle default case    
        }else{
          //handle different case
        }
        return 0;
}
Run Code Online (Sandbox Code Playgroud)

我对这个问题的研究没有任何例子.我理论上这个值可以通过类以静态方式访问,但它不能.所以我有两个问题.

  • 是否可以在注释中获取元素的默认值?
  • 如果是这样,怎么样?

此外,我知道我可以硬编码这个值,但是我想让程序稍微强一些.

java reflection annotations

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

Java库运行时与编译时间

在使用Tomcat作为应用程序服务器设置Java Web应用程序时,我常常对库何时可用感到困惑.通过对Stack Overflow的一些讨论,我了解到一些库(.jar)文件在运行时可用,而其他文件在编译时可用.通常我会得到错误并通过反复试验解决它们,将jar文件放在不同的目录中,直到应用程序运行或编译.最近向我指出,您可以通过WEB-INF/lib文件夹在运行时使.jar库可用.我开始考虑这个并提出一些问题.我过去已经阅读了这个主题,并没有找到将信息放入我容易理解和保留的上下文中的来源.

  1. 是否有可以为项目设置的编译时类路径和运行时类路径?

    一个.classpath甚至是讨论运行时可用库的适用术语吗?

  2. WEB-INF/lib是在运行时使库可用的唯一方法吗?Tomcat中的lib文件夹在运行时可以使用吗?

  3. 这与类加载器有什么关系?我知道创建了类加载器的层次结构.这些是严格用于运行时操作吗?

java eclipse tomcat

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

如何使用Comparator对ArrayList进行排序?

我有一个实现静态方法的类学生

public static Comparator<Student> getCompByName()
Run Code Online (Sandbox Code Playgroud)

返回Student的新比较器对象,通过属性"name"比较2个Students对象.

我现在需要使用我的函数getCompByName()通过'name'对学生ArrayList进行排序来测试它.

这是我的Student课程中的Comparator方法.

public static Comparator<Student> getCompByName()
{   
 Comparator comp = new Comparator<Student>(){
     @Override
     public int compare(Student s1, Student s2)
     {
         return s1.name.compareTo(s2.name);
     }        
 };
 return comp;
}  
Run Code Online (Sandbox Code Playgroud)

而主要我需要测试的地方

public static void main(String[] args)
{
    // TODO code application logic here

    //--------Student Class Test-------------------------------------------
    ArrayList<Student> students = new ArrayList();
    Student s1 = new Student("Mike");
    Student s2 = new Student("Hector");
    Student s3 = new Student("Reggie");
    Student s4 = new Student("zark");
    students.add(s1);
    students.add(s2);
    students.add(s3);
    students.add(S4);

    //Use getCompByName() …
Run Code Online (Sandbox Code Playgroud)

java sorting collections arraylist comparator

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

在<style>标记中使用rowspan属性

我想使用rowspan(html的属性)<style>,如:

   <style>
     table td{
       rowspan: 2;
     }
    </style>
Run Code Online (Sandbox Code Playgroud)

无论如何要做到这一点,还是有什么可以解决的?感谢任何建议!

html css

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

c:out和使用$打印输出之间的区别

在JSTL中有两种打印输出的方法 -

<H1><c:out value="${theOutput}" /></H1>

<H1>${theOutput}</H1>

有什么不同?哪一个是首选方式?

谢谢.

java jsp jstl

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

相互客户端身份验证在Servlet中获取证书

我已经设置了一个Tomcat 7.0应用程序服务器,通过SSL进行相互(客户端/服务器)身份验证.要设置此配置,我需要在我的Web浏览器中为服务器和.pks证书创建.jks文件.在Tomcat中配置server.xml文件后,我有相互身份验证和SSL工作.现在我试图在servlet中获取证书,但是我似乎无法从servlet中的请求中获取证书.我可以设置一个成功从请求中提取证书的过滤器.任何人都可以为我提供一个配置/代码,允许我从servlet获取证书吗?我也接受了为什么我无法在servlet中获取证书的原因.

在server.xml

<Connector
 clientAuth="true" port="8443" protocol="HTTP/1.1" SSLEnabled="true"
 scheme="https" secure="true"
 keystoreFile="C:/Users/Kevin Bowersox/Desktop/Development/My Certs/server.jks"
 keystoreType="JKS" keystorePass="notmypassword"
 truststoreFile="C:/Users/Kevin Bowersox/Desktop/Development/My Certs/server.jks"
 truststoreType="JKS" truststorePass="notmypassword"
 SSLVerifyClient="require" SSLVerifyDepth="2" sslProtocol="TLS"
/>
Run Code Online (Sandbox Code Playgroud)

MyServlet.java - 这会抛出RuntimeException,因为在访问url时找不到证书:https:// localhost:8443/Sample_Application/MyServlet

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
          X509Certificate[] certs = (X509Certificate[]) request.getAttribute("javax.servlet.request.X509Certificate");
            if (null != certs && certs.length > 0) {
                System.out.println("cert found");
            }
            throw new RuntimeException("No X.509 client certificate found in request");
    }
Run Code Online (Sandbox Code Playgroud)

MyServlet Mapping

<servlet>
    <description>
    </description>
    <display-name>MyServlet</display-name>
    <servlet-name>MyServlet</servlet-name>
    <servlet-class>MyServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>MyServlet</servlet-name>
    <url-pattern>/MyServlet</url-pattern>
</servlet-mapping>
Run Code Online (Sandbox Code Playgroud)

MyFilter.java …

java ssl tomcat6

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