小编Ste*_*ers的帖子

使用hibernate创建新表时如何维护列顺序?

这是我的pojo注释为实体

@Entity
@Table(name = "book", catalog = "book_db")
public class Book {
    private Integer bookId;
    private String bookName;
    private String bookShortDesc;
    private String bookDesc;
    private String bookAuthor;
}
@Id
@GeneratedValue(strategy = IDENTITY)
@Column(name = "book_id", unique = true, nullable = false)
public Integer getBookId() {
    return this.bookId;
}

@Column(name = "book_name", nullable = false, length = 256)
public String getBookName() {
    return this.bookName;
}
@Column(name = "book_short_desc", nullable = false, length = 1024)
public String getBookShortDesc() {
    return this.bookShortDesc;
} …
Run Code Online (Sandbox Code Playgroud)

java database hibernate

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

如何在Java中将值从一个枚举转换为另一个?

如何在Java中将值从Enum1转换为Enum 2?这是我正在尝试做的一个例子:

public enum Enum1 {
  ONE,
  TWO,
  THREE;
}

public enum Enum2 {
  FOUR,
  FIVE,
  SIX;
}
Run Code Online (Sandbox Code Playgroud)

所以我想做这样的事情:

Enum2 en2 = (Enum2)ONE;
Run Code Online (Sandbox Code Playgroud)

有可能,我该怎么做?

提前致谢!

java enums enumeration casting

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

循环n次而不使用存储过程

如何在不使用存储过程的情况下编写在MySql中运行n次的循环.

这是我使用存储过程的方式:

DELIMITER $$
DROP PROCEDURE IF EXISTS test$$
CREATE PROCEDURE test()
BEGIN
   DECLARE count INT DEFAULT 0;
   WHILE count < 10 DO
      /**Sql statement**/
      SET count = count + 1;
   END WHILE;
END$$
DELIMITER ;  
Run Code Online (Sandbox Code Playgroud)

然后我以这种方式执行我的程序:

call test();  
Run Code Online (Sandbox Code Playgroud)

如果我删除存储过程并运行正常查询,则失败并显示以下错误:

1064 - 您的SQL语法出错; 检查与MySQL服务器版本对应的手册,以便在'DECLARE count INT DEFAULT 0附近使用正确的语法; 在第2行计数<10 DO

我已经通过互联网查找了没有运气的解决方案.

根据评论编辑:

上面的存储过程完全符合我的要求:它循环10次并执行我的sql语句.现在我想在不使用存储过程的情况下完成同样的事情.就像是:

DECLARE count INT DEFAULT 0;
   WHILE count < 10 DO
      /**Sql statement**/
      SET count = count + 1;
   END WHILE;  
Run Code Online (Sandbox Code Playgroud)

mysql sql

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

如何在SQL Server中的滑动窗口上聚合(计算不同的项目)?

我目前正在使用此查询(在SQL Server中)每天计算唯一项目的数量:

SELECT Date, COUNT(DISTINCT item) 
FROM myTable 
GROUP BY Date 
ORDER BY Date
Run Code Online (Sandbox Code Playgroud)

如何对此进行转换以获取过去3天(包括当天)中每个日期的唯一商品数量

输出应该是一个包含2列的表:一列包含原始表中的所有日期.在第二列,我们有每个日期的唯一项目数.

例如,如果原始表是:

Date        Item  
01/01/2018  A  
01/01/2018  B  
02/01/2018  C  
03/01/2018  C    
04/01/2018  C
Run Code Online (Sandbox Code Playgroud)

根据我上面的查询,我目前获得每天的唯一计数:

Date        count  
01/01/2018  2  
02/01/2018  1  
03/01/2018  1  
04/01/2018  1
Run Code Online (Sandbox Code Playgroud)

我希望得到3天滚动窗口的独特计数:

Date        count  
01/01/2018  2  
02/01/2018  3  (because items ABC on 1st and 2nd Jan)
03/01/2018  3  (because items ABC on 1st,2nd,3rd Jan)    
04/01/2018  1  (because only item C on 2nd,3rd,4th Jan)    
Run Code Online (Sandbox Code Playgroud)

sql sql-server count aggregate-functions sliding-window

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

在Java中将HTML转换为纯文本

我需要将HTML转换为纯文本.我对格式化的唯一要求是在纯文本中保留新行.新行不仅应显示在<br>其他标签的情况下,例如<tr/>,也应显示</p>新行.

用于测试的示例HTML页面是:

请注意,这些只是随机网址.

我已经尝试了在这个StackOverflow问题的答案中提到的各种库(JSoup,Javax.swing,Apache utils)来将HTML转换为纯文本.

使用JSoup的示例:

public class JSoupTest {

 @Test
 public void SimpleParse() {
  try {
   Document doc = Jsoup.connect("http://www.particle.kth.se/~lindsey/JavaCourse/Book/Part1/Java/Chapter09/scannerConsole.html").get();
   System.out.print(doc.text());

  } catch (IOException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
 }
}
Run Code Online (Sandbox Code Playgroud)

HTMLEditorKit示例:

import javax.swing.text.html.*;
import javax.swing.text.html.parser.*;

public class Html2Text extends HTMLEditorKit.ParserCallback {
 StringBuffer s;

 public Html2Text() {}

 public void parse(Reader in) throws IOException {
   s = new StringBuffer();
   ParserDelegator delegator = new ParserDelegator();
   // the …
Run Code Online (Sandbox Code Playgroud)

java parsing plaintext htmleditorkit jsoup

10
推荐指数
2
解决办法
4万
查看次数

如何在Eclipse中列出Java类及其祖先公开的所有属性?

给定一个Java类,我希望能够列出在所有祖先中公开的所有属性,并public以相同的方式递归遍历所有公开的属性(即或使用getter/setter).

用一个简单的例子更容易解释:

public class BaseClass1 {
    private int intProperty; // has getter and setter (not shown)
}
public class SubClass1 extends BaseClass1 {
    private int privateSoNotListed;
    public SubClass2 subClass2Property;
}
public class BaseClass2 {
    public String stringProperty;
}
public class SubClass2 extends BaseClass2 {
    private long longProperty; // has getter and setter (not shown)
}
Run Code Online (Sandbox Code Playgroud)

鉴于SubClass1上面的输入,输出会是这样的:

intProperty                      - int    [from BaseClass1]
subClass2Property.stringProperty - String [from BaseClass2]
subClass2Property.longProperty   - long   [from SubClass2]
Run Code Online (Sandbox Code Playgroud)

应该可以使用一些巧妙的反射来写这样的东西,但我宁愿不重新发明轮子 - 是否有现成的工具可以做到这一点(也许是一个Eclipse插件?)

编辑: Eclipse的类型层次结构可以很好地显示单个类的属性 …

java eclipse reflection recursion eclipse-plugin

10
推荐指数
2
解决办法
7208
查看次数

返回多个值的Java方法的最佳实践?

我需要一个非静态实例方法来返回多个值.举个简单的例子起见,让我们说的这些都是boolean successObject obj-但在一般情况下,有可能是更多,他们可能是彼此无关.可以想到几种不同的方法:

解决方案1

private boolean aMethod(int aParam, Object obj) { ...set obj parameter & return value... }
Run Code Online (Sandbox Code Playgroud)

解决方案2

private Pair<Boolean, Object> aMethod(int aParam) { ...set return pair values... }
Run Code Online (Sandbox Code Playgroud)

解决方案3

private Object obj;
...
private boolean aMethod(int aParam) { ...set obj field & return value... }
Run Code Online (Sandbox Code Playgroud)

解决方案4

private class MethodReturn { // Nested class - could be a separate class instead
    boolean success;
    Object obj;
    // ... Getters and setters omitted for brevity
}

private …
Run Code Online (Sandbox Code Playgroud)

java methods return class object

10
推荐指数
2
解决办法
3895
查看次数

数据库设计

我有4个表:users,posts,categories,categories_map

postsid,text,category_id
categories_map包含user_idcategory_id

我的目标是创建一个用户可以预览的队列.此外,用户将能够跳过一些帖子或编辑其中的文本.如果用户跳过帖子,它将永远不会出现在队列中.但是,用户无法更改序列,因为cron将执行脚本.

第一种方法,我认为是创建包含一个表 user_id,post_id,text_modified,is_skipped,last_posted.因此,当执行cron作业时,它将留下时间戳,因此下次不会抓取此帖子,用户可以轻松更改此帖子的文本.

第二种方法是创建一个队列会为用户生成一个单独的表user_id,post_id,category_id,text_modified.因此,cron作业可以轻松地跟随此表并在完成后删除该行.但是使用这种方法,如果我有30个用户,平均有3个类别,每个包含5000个帖子,我的表已经有450000行.是的,如果它被正确索引,它应该都是好的.但是当我有100-200个用户时,它是否可以扩展?

我应该采取哪种方法,还是有其他解决方案?

php mysql cron database-design

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

如何在hibernate.cfg.xml中配置物理命名策略?

我正在学习Java和Hibernate.现在,我无法理解如何使用自定义物理命名策略:虽然PhysicalNamingStrategy对象确实是实例化的,但是从不调用toPhysicalTableName或者toPhysicalColumnName调用方法 - 至少我没有看到调试器.

版本:Java 1.8,Hibernate 5.2.10.Final,在macOS 10.12上.

这是一个最小的项目:

@Entity
public class Cake {
    @Id
    private long id;
    private String name;
    private String FLAVOUR;
    private int sErViNg;

    public Cake(String name, String flavour, int serving) {
        this.name = name;
        this.FLAVOUR = flavour;
        this.sErViNg = serving;
    }

    // getters and setters
Run Code Online (Sandbox Code Playgroud)
public class Main {

    public static void main (String[] args) {
        Transaction tx = null;

        try (
                SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();
                Session session = sessionFactory.openSession(); …
Run Code Online (Sandbox Code Playgroud)

java configuration hibernate

10
推荐指数
2
解决办法
1266
查看次数

在Hibernate中使用SEQUENCE时导致唯一约束违规的原因是什么?

我使用下面的代码为id字段生成唯一ID .它工作正常,直到上周.我使用Hibernate接口删除了一些实体,然后当我尝试插入新记录时,它开始给出一个唯一的约束违例异常.

可能是什么导致了这个问题?

@SequenceGenerator(name = "ParamGenerator", sequenceName = "ParamSequence", allocationSize = 1)
public class Param extends IdNameEntity<Long> {

    private static final long serialVersionUID = 1L;

    @Id
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "ParamGenerator")
    private Long id;
Run Code Online (Sandbox Code Playgroud)

这是删除方法:

@Override
public void delete(final T t) {
    getCurrentSession().delete(t);
}
Run Code Online (Sandbox Code Playgroud)

这是错误日志:

2018-04-25 16:34:41 [http-nio-8081-exec-3] INFO  o.h.e.j.b.internal.AbstractBatchImpl - HHH000010: On release of batch it still contained JDBC statements
2018-04-25 16:34:41 [http-nio-8081-exec-3] ERROR org.hibernate.internal.SessionImpl - HHH000346: Error during managed flush [could not execute statement]
2018-04-25 …
Run Code Online (Sandbox Code Playgroud)

java oracle hibernate jpa sequence

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