小编Eri*_*ric的帖子

org.hibernate.AssertionFailure:条目中的null id(发生异常后不刷新会话)

我有一个hibernate和JSF2应用程序进入部署服务器并突然在异常中抛出org.hibernate.AssertionFailure:null id.我将立即提供堆栈跟踪和代码,但这里首先是四个重要问题:

  1. 这只发生在部署服务器上(在Windows Sever 2008上运行的Jboss和MySql).它不会发生在我的开发机器上(在Windoes 7 Pro上运行的Tomcat和MySql),也不会发生在暂存环境中(在Linux上运行的Jboss和MySql) .)

  2. 研究这个,似乎人们在尝试插入对象时会出现此错误.但是当我做一个简单的查询时,我得到了错误.(实际上,各种不同的查询随机地在几个页面上弹出错误.)

  3. 错误只会偶尔出现.如果我做Jboss重启它会消失,但一段时间后会返回.此外,它不一致,有些点击它在那里,而其他人则没有.即使它命中,当我对页面进行简单的刷新时它也会返回.

  4. 我正在使用c3p0(下面的配置)

知道发生了什么事吗?

代码详情:

这发生在地址对象上.这是完整的hbm:

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.idex.auctions.model">
<class name="Address" table="address" lazy="true">
  <id name="addressID" column="AddressID">
        <generator class="native"/>            
  </id>

  <property name="street" column="street"/> 
  <property name="city" column="city"/> 
  <property name="zip" column="zip"/> 
  <property name="state" column="state"/> 
  <property name="region" column="region"/> 
  <property name="country" column="country"/> 

  <many-to-one name="user" 
       class="com.idex.auctions.model.User" 
       column="userid" 
       unique="true" 
       cascade="save-update"/>
 </class> 
</hibernate-mapping>
Run Code Online (Sandbox Code Playgroud)

Java类是直截了当的:

public class Address implements Serializable {
private static final long serialVersionUID = 7485582614444496906L;

private long addressID;
private …
Run Code Online (Sandbox Code Playgroud)

mysql windows jboss hibernate jsf-2

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

关于Python3.4.1客户端中的char b前缀连接到redis

我遇到了麻烦.我的代码如下.但我不知道为什么在输出字符串"Hello Python"之前有一个char'b'.

>>> import redis
>>> redisClient = redis.StrictRedis(host='192.168.3.88',port=6379)
>>> redisClient.set('test_redis', 'Hello Python')
True
>>> value = redisClient.get('test_redis')
>>> print(value)
b'Hello Python' //why char 'b' output?
Run Code Online (Sandbox Code Playgroud)

python redis

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

为什么我不能括起来初始化从另一个结构派生的结构?

当我运行此代码时:

struct X {
    int a;
};

struct Y : public X {};

X x = {0};
Y Y = {0};
Run Code Online (Sandbox Code Playgroud)

我明白了:

error: could not convert ‘{0}’ from ‘<brace-enclosed initializer list>’ to ‘Y’
Run Code Online (Sandbox Code Playgroud)

为什么大括号初始化适用于基类而不适用于派生类?

c++ struct c++11 list-initialization

37
推荐指数
2
解决办法
8660
查看次数

标志枚举和按位操作与"字符串"

一位开发人员建议我们将一周中的选择日期存储为7个字符的1和0字符串,即周一和周五的"1000100".我更喜欢(强烈建议)一个带有Flags枚举和按位操作的解决方案,我认为这是一种更简洁的方法,对其他开发人员应该更容易理解.

  [Flags()]
  public enum Weekdays : int
  {
    Monday = 1,
    Tuesday = 2,
    Wednesday = 4,
    Thursday = 8,
    Friday = 16,
    Saturday = 32,
    Sunday = 64
  }
Run Code Online (Sandbox Code Playgroud)

然而,当我开始实现一个示例解决方案时,我意识到简单的字符串方法可能更容易:当然,如果您只是查看数据,则位串比"17"更明显.我发现C#按位运算反直觉且非常冗长:

Weekdays workDays = Weekdays.Monday | Weekdays.Tuesday;
if ((workDays & Weekdays.Monday) == Weekdays.Monday) 
{...}
Run Code Online (Sandbox Code Playgroud)

当然,这可以很好地包含在扩展方法中,但是我们突然最终得到的代码行数与字符串解决方案的数量相同,我几乎不能认为按位代码更容易阅读.

话虽这么说,我仍然会使用标志枚举和按位操作.我能想到的主要好处是

  • 更好的性能
  • 存储所需的空间更少

那么我如何向同事出售逐位解决方案呢?我是不是该?使用此方法比字符串有什么其他好处?完成示例项目后,我发现团队仍然选择了基于字符串的解决方案.我需要一些更好/更强的论点.为什么要使用Flags枚举而不是简单的位串?

c# bit-manipulation enum-flags

35
推荐指数
3
解决办法
4万
查看次数

是否有编译LESS的在线工具?

我正在尝试在我的网页中使用LESS,但我在编译时遇到了问题.它是为ruby而设计的,我没有权限在我的电脑上安装.是否有这个编译的在线工具?

我知道lessphp存在,但我再也找不到他们网站上的演示了.

总而言之,我正在寻找一种快速而肮脏的解决方案来编译LESS以在本地测试我的样式表.理想情况下,这将与Microsoft Expression Web 4集成(对于dreamspark来说很好),但我对"复制,粘贴,编译,复制,粘贴"Web界面非常满意.

这样的界面是否存在?

css less

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

表格使用表格是否可以接受?或者使用div更正确吗?

我想知道将tables用于表单是否可以接受.

严格来说,名称/值对是表格数据,不是吗?表单只是一组用户可自定义的名称/值对.那么table在这种情况下使用s 是否正确?或者我应该使用divCSS样式?

html css forms html-table

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

用户定义的C++ 11枚举类默认构造函数

有没有办法指定一个默认的构造函数enum class

我使用an enum class来指定一组允许库中特定数据类型的值:在这种情况下,它是Raspberry Pi的GPIO引脚ID号.它看起来像这样:

enum class PinID : int {N4 = 4, N17 = 17, /* ...etc... */ }

我这样做而不仅仅是使用一个int是确保代码是安全的:我可以static_assert(或者编译时确保 - 实际使用的方法对我来说并不重要)像有人没有这样的东西发出拼写错误(传递5而不是4等),我得到类型不匹配的自动错误消息等.

那么问题就是enum class有一个默认的构造函数 - 为了兼容性而enum我假设(因为它们具有相同的行为) - 初始化为enum class等效的0.在这种情况下,没有0价值.这意味着用户做出如下声明/定义:

PinID pid = PinID();

正在获取一个未明确定义的枚举器(当查看代码时甚至看起来"不存在"),并且可能导致运行时错误.这也意味着switch如果没有错误/默认情况,我就不可能使用明确定义的枚举器的值这样的技术- 这是我想要避免的,因为它会强迫我执行throw或执行类似返回a的操作boost::optional,这些操作不太适合静态分析.

我试图定义默认构造函数无济于事.我(拼命)试图定义一个共享名称的函数enum class,但这(不出所料)导致奇怪的编译器错误.我想保留铸的能力enum classint,与所有N#统计员映射到它们各自的#,所以仅仅是"定义",比方说,N4 = 0是不可接受的; 这是为了简单和理智.

我想我的问题是双重的:有没有办法获得我使用后的静态安全性enum class?如果没有,还有什么其他可能性?我想要的是: …

c++ default-constructor c++11 enum-class

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

Python相当于字典的zip

如果我有这两个列表:

la = [1, 2, 3]
lb = [4, 5, 6]
Run Code Online (Sandbox Code Playgroud)

我可以按如下方式迭代它们:

for i in range(min(len(la), len(lb))):
    print la[i], lb[i]
Run Code Online (Sandbox Code Playgroud)

或者更诡异

for a, b in zip(la, lb):
    print a, b
Run Code Online (Sandbox Code Playgroud)

如果我有两本词典怎么办?

da = {'a': 1, 'b': 2, 'c': 3}
db = {'a': 4, 'b': 5, 'c': 6}
Run Code Online (Sandbox Code Playgroud)

再次,我可以手动迭代:

for key in set(da.keys()) & set(db.keys()):
    print key, da[key], db[key]
Run Code Online (Sandbox Code Playgroud)

是否有一些内置方法允许我迭代如下?

for key, value_a, value_b in common_entries(da, db):
    print key, value_a, value_b 
Run Code Online (Sandbox Code Playgroud)

python dictionary iterator

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

将unicode符号用作Java标识符是一个好主意吗?

我有一段代码如下:

double ?t = lastPollTime - pollTime;
double ? = 1 - Math.exp(-?t / ?);
average += ? * (x - average);
Run Code Online (Sandbox Code Playgroud)

在Java标识符中使用unicode字符的想法有多糟糕?或者这完全可以接受?

java unicode identifier

29
推荐指数
4
解决办法
3847
查看次数

table.insert(t,i)和t [#t + 1] = i之间有什么区别?

在Lua中,似乎有两种方法可以将元素附加到数组:

table.insert(t, i)
Run Code Online (Sandbox Code Playgroud)

t[#t+1] = i
Run Code Online (Sandbox Code Playgroud)

我应该使用哪个,为什么?

lua lua-table

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