小编RNJ*_*RNJ的帖子

HSQL中缺少用于测试的序列

我有一个Oracle数据库,我必须使用序列作为主键.这一切都很好,因为我可以控制序列号.我的问题是我的测试.使用Spring我创建一个HSQL数据库并对此进行测试.通过查看我的所有实体来构建此数据库.为了使用Oracle,我的所有实体都指定了一个序列名.麻烦的是,当我构造HSQL数据库时,它无法找到序列(我期望)我的测试通过但是我最终在日志中有很多错误.日志中充满了这些消息.

WARN JDBCExceptionReporter:233 - SQL Error: -5501, SQLState: 42501
ERROR JDBCExceptionReporter:234 - user lacks privilege or object not found: GENDERS_SEQ
Run Code Online (Sandbox Code Playgroud)

有谁知道如何删除这些虚假错误?我可以让HSQL忽略序列.有趣的是,在测试中我可以插入HSQL数据库,因此它必须使用自己的内部主键生成器.

有关如何从日志中删除此瑕疵的任何想法?

谢谢

java database oracle spring hsqldb

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

在Switch语句中使用Integer

出于各种商业原因,我想在我的一个类中保留一些静态ID.它们本来是,int但我想改变它们,Integer所以我可以对它们做一个平等(即MY_ID.equals(..)避免使用NPE)

当我将它们更改为Integer时,我的switch语句中出现错误.该文件说,整数应该是交换机内确定.

报价

[Switch]也适用于枚举类型(在枚举类型中讨论),String类,以及一些包含某些基本类型的特殊类:Character,Byte,Short和Integer(在Numbers和Strings中讨论).

在我的代码下面,如果我是一个,int那么它编译.当它是一个Integer它并没有说a constant expression is required.我已经尝试过,.intValue()但这也不起作用.

我真的很蠢吗?或完全误读文档

private static final Integer i = 1;

@Test
public void test() {
    switch(mObj.getId()){
        case i: //do something
        default: //do something default
    }

}
Run Code Online (Sandbox Code Playgroud)

感谢您的任何指示.暂时我一直在int做他们new Integer(myint).equals(...)

java switch-statement

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

在Hibernate中计算SQL语句

我对hibernate有一些性能问题,因为它会多次访问数据库.我正在研究一些获取策略.我想写一些功能单元测试,以便我的应用程序发展,我可以看到有多少SQL语句被调用.

我想知道我是否可以计算调用多少个SQL语句.目前我将show-sql设置为true,然后计算控制台中的SQL.如果可能的话,我想在代码中执行此操作.是否可以计算hibernate在代码中使用多少个SQL?

谢谢

编辑

在@AleksanderBlomskøld回复之后....

我的测试用例是

StatisticsService statisticsService = new StatisticsService();
Session session = entityManager.unwrap(Session.class);
statisticsService.setSessionFactory(session.getSessionFactory());
statisticsService.setStatisticsEnabled(true);

List<MyType> r= entityManager.createQuery("from MyType", MyType.class).getResultList();

System.out.println(statisticsService.getQueryExecutionCount());
System.out.println(statisticsService.getQueries()[0]);
Run Code Online (Sandbox Code Playgroud)

查询执行计数为1,如果我查看查询,则表明它是"来自MyType"

但是在日志中的sql语句中,我可以看到有SQL语句来检索MyType及其许多相关类.所以事实上我想知道因为"来自MyType"调用而攻击数据库的所有SQL.

我需要更清楚的是什么?或者我只是滥用StatisticService

谢谢

java sql hibernate

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

Hibernate延迟加载反向一对一解决方法 - 这是如何工作的?

今天我遇到问题,延迟加载在使用映射集合时无法正常工作.我发现这篇优秀的文章似乎解决了这个问题

http://justonjava.blogspot.co.uk/2010/09/lazy-one-to-one-and-one-to-many.html

我不明白的一件事是使用FieldHandled的解决方法是如何工作的.任何人都可以帮我理解这个吗?有问题的代码如下(从链接上的示例中复制):

@Entity
public class Animal implements FieldHandled {
   private Person owner;
   private FieldHandler fieldHandler;

   @OneToOne(fetch = FetchType.LAZY, optional = true, mappedBy = "animal")
   @LazyToOne(LazyToOneOption.NO_PROXY)
   public Person getOwner() {
     if (fieldHandler != null) {
        return (Person) fieldHandler.readObject(this, "owner", owner);
     }
     return owner;
   }

   public void setOwner(Person owner) {
     if (fieldHandler != null) {
       this.owner = fieldHandler.writeObject(this, "owner", this.owner, owner);
       return;
     }
     this.owner = owner;
   }

   public FieldHandler getFieldHandler() {
     return fieldHandler;
   }

   public void setFieldHandler(FieldHandler fieldHandler) {
     this.fieldHandler = …
Run Code Online (Sandbox Code Playgroud)

java hibernate hibernate-mapping

7
推荐指数
2
解决办法
7833
查看次数

intelliJ android UI渲染问题 - 缺少库

经过多次抨击,我似乎已经在IntelliJ终极中运行了我的第一个hello world应用程序.我今天下载了最新的终极版.

当我尝试在UI设计器中打开main.xml时,我得到以下错误.

有人可以帮忙吗?我喜欢来自IntelliJ提供商的视频中UI设计师的外观:http://www.jetbrains.com/idea/features/android-tutorials.jsp

提前致谢

This version of the rendering library is more recent than your version of IntelliJ IDEA. Please update IntelliJ IDEA

org.jetbrains.android.uipreview.RenderingException: This version of the rendering library is more recent than your version of IntelliJ IDEA. Please update IntelliJ IDEA
at org.jetbrains.android.uipreview.LayoutLibraryLoader.load(LayoutLibraryLoader.java:90)
at org.jetbrains.android.sdk.AndroidTargetData.getLayoutLibrary(AndroidTargetData.java:149)
at com.android.tools.idea.rendering.RenderService.create(RenderService.java:167)
at com.intellij.android.designer.designSurface.AndroidDesignerEditorPanel$6.run(AndroidDesignerEditorPanel.java:485)
at com.intellij.util.ui.update.MergingUpdateQueue.execute(MergingUpdateQueue.java:320)
at com.intellij.util.ui.update.MergingUpdateQueue.execute(MergingUpdateQueue.java:310)
at com.intellij.util.ui.update.MergingUpdateQueue$2.run(MergingUpdateQueue.java:254)
at com.intellij.util.ui.update.MergingUpdateQueue.flush(MergingUpdateQueue.java:269)
at com.intellij.util.ui.update.MergingUpdateQueue.flush(MergingUpdateQueue.java:227)
at com.intellij.util.ui.update.MergingUpdateQueue.run(MergingUpdateQueue.java:217)
at com.intellij.util.concurrency.QueueProcessor.runSafely(QueueProcessor.java:238)
at com.intellij.util.Alarm$Request$1.run(Alarm.java:327)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at …
Run Code Online (Sandbox Code Playgroud)

android intellij-idea intellij-13

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

如何使用xpath获取对象列表中的所有值?

如何使用 xpath 获取所有帐户的名称?以下表达式仅返回第一个帐户名称:

XPathExpression fax = xpath.compile("/accounts/account/name")

<accounts>
<account>
<name>Johndoe1<name>
<account>
<account>
<name>Johndoe2<name>
<account>
</account>
Run Code Online (Sandbox Code Playgroud)

java xml xpath

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

获取Trie中的单词列表

我希望使用以下代码来检查Trie中是否存在单词匹配,但是返回列表所有以用户输入的前缀开头的单词.有人能指出我正确的方向吗?我根本无法工作.....

public boolean search(String s)
{
    Node current = root;
    System.out.println("\nSearching for string: "+s);

    while(current != null)
    {
        for(int i=0;i<s.length();i++)
        {               
            if(current.child[(int)(s.charAt(i)-'a')] == null)
            {
                System.out.println("Cannot find string: "+s);
                return false;
            }
            else
            {
                current = current.child[(int)(s.charAt(i)-'a')];
                System.out.println("Found character: "+ current.content);
            }
        }
        // If we are here, the string exists.
        // But to ensure unwanted substrings are not found:

        if (current.marker == true)
        {
            System.out.println("Found string: "+s);
            return true;
        }
        else
        {
            System.out.println("Cannot find string: "+s +"(only present as …
Run Code Online (Sandbox Code Playgroud)

java trie

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

如果/ Case语句在JPA Criteria Builder中

我想建立一个查询,搜索不同的entites日期.我的结构是:

  • 合同有日期(不可为空)
  • 员工有日期(不可为空)
  • 员工可能有合同ID(可空)

如果员工有合同我想要检索合同日期.如果员工没有合同,那么我想退回员工日期.

到目前为止我的代码是:

if (inputDate!= null) {
    ParameterExpression<Date> exp = criteriaBuilder.parameter(Date.class, "inputDate");
    criteria.add(criteriaBuilder.or(
        criteriaBuilder.isNull(employee.get("contract")),
        criteriaBuilder.lessThanOrEqualTo(employee.<Date>get("creationDate"), exp),   criteriaBuilder.lessThanOrEqualTo((employee.join("contract").<Date>get("fromDate")), exp) ));}
Run Code Online (Sandbox Code Playgroud)

这似乎不起作用.我似乎总是进入我不期望的isNull.

我很高兴再看一下,但我想我的问题是这是否是正确的方法.是吗?我在criteriaBuilder中也看到了一个selectCase,所以也许这可能是一个更好的解决方案.

任何指针都会受到极大的欢迎.

谢谢

java jpa criteria-api jpa-2.0

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

使用JPA和Hibernate重试乐观锁定异常

我在hibernate中遇到了一些脏写问题.我添加了@version字段,以便我可以看到我是否正在写一个过时的表.这意味着我现在有很多锅炉板代码

try {
   tryWriteToTable();
} catch (PersistenceExcepton) {  //subclasss of OptimisiticLockException
   try {
      tryWriteToTable();
   } catch (PersistenceExcepton) {
       //dont try again - something seriously wrong
   }
}  
Run Code Online (Sandbox Code Playgroud)

我正在使用Spring,并想知道是否有任何东西可以让我定义这个模式.如果有异常,可以让我重复的东西.除了Spring之外,我还可以使用其他任何东西来避免所有这些丑陋的锅炉板代码.

我想要这样的东西

@TryTwice
private void tryWriteToTable() ....
Run Code Online (Sandbox Code Playgroud)

谢谢

java spring hibernate jpa transactions

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

协调 Git Flow 和 QA

详见我们的项目是使用gitflow这里我的问题是如何做QA适应这个。

考虑我有一个 master 分支和一个 hotifx 分支。一旦修补程序完成,那么我相信 QA 应该在修补程序发布时做它的工作。如果它没有通过,则使用此修复程序更新修补程序。QA 再次发布。现在,当修补程序 RC 通过 QA 时,代码将合并回 master(应该没有冲突,并且只是作为 master 的直接副本没有更改)。然后从 master 完成生产发布。令人担忧的是,QA 尚未验证此版本。他们已经验证了一个修补程序版本。

我们如何协调 master 仅用于生产代码,但对接近足够的生产代码进行 QA 测试?任何人对这种情况有任何经验吗?我看不到任何详细说明 QA 和测试如何融入 gitflow 的内容。

谢谢

git qa git-flow

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