小编Rac*_*hel的帖子

LinkedHashSet或ArrayList

我希望

  1. 避免插入重复的项目.
  2. 当我遍历集合类时,返回的项与插入顺序相同.

我可以知道,我应该考虑什么,选择ArrayList(在插入前显式执行包含检查)或LinkedHashSet?

谢谢.

java data-structures

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

Oracle(ORA-02270):此列列表错误没有匹配的唯一键或主键

我有两个表,Table JOB并且Table USER,这里是结构

 CREATE TABLE JOB
 (
   ID       NUMBER NOT NULL ,
   USERID   NUMBER,
   CONSTRAINT B_PK PRIMARY KEY ( ID ) ENABLE
 );

 CREATE TABLE USER
 (
   ID       NUMBER NOT NULL ,
   CONSTRAINT U_PK PRIMARY KEY ( ID ) ENABLE
 );
Run Code Online (Sandbox Code Playgroud)

现在,我想添加外键约束来JOB引用USER表,如

Alter Table JOB ADD CONSTRAINT FK_USERID FOREIGN KEY(USERID) REFERENCES USER(ID);
Run Code Online (Sandbox Code Playgroud)

这个抛出Oracle (ORA-02270) : no matching unique or primary key for this column-list error,做一些调查似乎我们需要unique key or primary key …

database oracle foreign-keys primary-key

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

在PHP中,是否可以在不调用类的构造函数的情况下创建类的实例?

无论如何,是否可以在不调用其构造函数的情况下创建php类的实例?

我有A类,在创建它的实例时传递文件,在A类的构造函数中打开文件.

现在在A类中,有我需要调用的函数但不需要传递文件,因此不需要使用打开文件的构造函数,因为我没有传递文件.

所以我的问题是,是否可以通过任何方式创建PHP类的实例而无需调用其构造函数?

注意我不能使函数静态,因为我在函数中使用了一些类属性.

php oop

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

使用Hibernate回调的优点?

我无法理解使用Hibernate Callback方法的优点,是否有任何优势或特定用例我们应该去实现它.

public List findRecentRequests(final int offset, final int length)
{
    List list = getHibernateTemplate().executeFind(new HibernateCallback()
    {
        public Object doInHibernate(Session session) throws HibernateException
        {
            Query q = session.createQuery(FIND_RECENT_REQUESTS);
            q.setFirstResult(offset);
            q.setMaxResults(length);
            return q.list();
        }
    });
    return list;
}
Run Code Online (Sandbox Code Playgroud)

还有一个更重要的问题是HibernateCallback方法在查询返回值后每次关闭会话吗?我有一个用例,每次刷新状态页面都会多次调用这个函数,所以每次打开会话和查询数据库都会这样,或者它会将查询结果存储在内存中,然后每当我调用这个函数时,都会弹出结果从记忆里.

我看过(参考):

默认情况下,Spring HibernateTemplate.execute()会在完成时关闭所有打开的会话.与惰性初始化一起使用时,您可能会收到类似以下内容的LazyInitializationException

org.hibernate.LazyInitializationException:无法初始化代理 - 没有会话

任何对相关文档部分的引用都将受到高度赞赏.

更新:

在我的情况下,我正在使用ejb事务并将其设置为"支持",我相信在这种情况下,事务被设置为支持,它是可选的,因此每次创建新会话时,hibernate将查询数据库以获得结果,所以这是我的有瓶颈,这是一个正确的假设吗?

java database spring hibernate

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

如何在java中打印/记录字符串数组?

小背景:

我的csv文件有很多行,每行都有字符串元素,这样一行的例子就是

String[] data = [20,11,Clothing,TShirts,Abercombie,Gap]

data.toString() = [Ljava.lang.String;@1152e94]
Run Code Online (Sandbox Code Playgroud)

现在在我的解析器中,我正在解析此csv文件并将每行存在于文件中 String[] data.在我的日志页面中,我需要id和文件中的行.

目前,如果我尝试打印然后得到像这样的值 [Ljava.lang.String;@1152e94,我的问题是如何获得数组元素的实际列表[20, 11, Clothing, TShirts, Abercombie, Gap]

尝试使用默认toString()但仍然提供相同的LString数据.

java string object

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

什么设计模式主要用于Web /企业应用程序?

在Web /企业应用程序中使用哪些最常见的设计模式以及使用它们的原因是什么?

注意:回答为什么部分应该基于列出他们倾向于解决的问题?

enterprise design-patterns web-applications

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

规则引擎可以实现什么?

使用规则引擎可以实现哪些目标?

rule-engine

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

"我的帐户"或"您的帐户"标签

我有一个奇怪的问题并不是技术问题,但我希望收集有意义的建议.

我正在构建一个大型Web应用程序,基本上是一个照片共享社区站点.作为此站点的一部分,登录用户可以访问他们的个人资料,从中可以看到他们自己的东西(图像,评论,投票)以及编辑他们的详细信息和偏好.用户还可以查看其他用户的个人资料(他们的图像,评论,投票),但当然不会编辑他们的详细信息.

我的问题很简单但它一直困扰着我:用什么称呼用户的个人链接和内容?他们应该被命名为"你的":

您的图片
您的资料
......

......或"我的":

我的图片
我的个人资料

...或者也许是名字,即使您已登录:

Fledder的
头像Fledder的头像

尽管听起来不重要,但我真的在这方面寻求建议.我对任何标准特别感兴趣,为什么选择首选,以及在哪种情况下首选.

user-interface user-experience uilabel ui-design

14
推荐指数
3
解决办法
1306
查看次数

Git技巧和窍门:在命令提示符上显示分支不起作用,并创建了git分支功能不起作用的副作用和许多其他功能

只是试图提高我对git的知识并使用提示和技巧,

我按照Tip中的 建议更新了我的.bashrc文件,PS1='[\u@\h \W$(__git_ps1 " (%s)")]\$ ' 但令我惊讶的是,我的git branch命令无效,即使我从.bashrc删除它也不适用于我.

还有每一次,我使用我的命令提示我得到-bash: __git_ps1: command not found任何指导或建议?

更新:我现在想摆脱它,我怎么能实现这个目标?

git

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

为什么要同步SynchronizedMap或SynchronizedCollections?

我指的是这里提出的问题并使用作者代码示例,现在我的问题是

  1. 为什么作者使用synchronized(synchronizedMap),是否真的有必要,因为synchronizedMap将始终确保没有两个线程尝试进行read/put操作,Map为什么我们需要synchronize在该地图本身?

真的很感激解释.


  public class MyClass {
  private static Map<String, List<String>> synchronizedMap =
      Collections.synchronizedMap(new HashMap<String, List<String>>());

  public void doWork(String key) {
    List<String> values = null;
    while ((values = synchronizedMap.remove(key)) != null) {
      //do something with values
    }
  }

  public static void addToMap(String key, String value) {
    synchronized (synchronizedMap) {
      if (synchronizedMap.containsKey(key)) {
        synchronizedMap.get(key).add(value);
      }
      else {
        List<String> valuesList = new ArrayList<String>();
        valuesList.add(value);
        synchronizedMap.put(key, valuesList);
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

java multithreading

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