小编Set*_*eth的帖子

连接表中的Hibernate ConstraintViolationException

当我尝试使用@OneToMany映射保存对象时,我遇到了ConstraintViolationException.Hibernate似乎认为我正在尝试将NULL放入映射列表中,或者它可能将其放在那里.这个问题似乎偶尔会发生:有些数据库很容易重现,但与其他数据库相比,我根本无法实现.

我是Hibernate和Hibernate Annotations的新手,所以任何帮助都会非常感激.

我有两个类:Camera和AlarmZone(扩展了第3类,Zone).除其他外,Camera包含AlarmZone对象的ID列表.这是类声明:

@Entity
@Inheritance(strategy = InheritanceType.JOINED)
@Table(name = "cameras")
public class Camera
{
    private Serializable id;

    private List<Serializable> alarm_zones = new ArrayList<Serializable>();

    ...

    @Id(generate = GeneratorType.SEQUENCE)
    @Type(type = "java.lang.Long")
    public java.io.Serializable getId()
    {
        return this.id;
    }

    public void setId(java.io.Serializable id)
    {
        this.id = id;
    }

    @OneToMany(targetEntity = java.lang.Long.class, fetch = FetchType.EAGER)
    @JoinTable(table = @Table(name = "cameraalarmzones"))
    public List<Serializable> getAlarmZones()
    {
        return alarm_zones;
    }

    public void setAlarmZones(List<Serializable> alarm_zones)
    {
        this.alarm_zones = alarm_zones;
    }

    ...
}

@Entity
@Inheritance(strategy = InheritanceType.JOINED) …
Run Code Online (Sandbox Code Playgroud)

java hibernate join hsqldb

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

Java SSL 套接字无需身份验证或存储?

我有两个 java 应用程序,需要通过加密的 TCP 套接字相互通信,但它们不需要相互验证(一个应用程序将接受()来自另一个的连接)。任何人都可以向我指出可以帮助我设置这些的教程/代码片段吗?

我正在寻找相当简单的东西,并且我不想提供任何密钥库或信任库材料。

编辑:我应该在这里更具体。我的意思是他们不必通过 SSL相互验证。我必须在应用程序级别执行一些重要的身份验证,因此我无法使用任何类型的基于 SSL 的身份验证方案。

此外,到目前为止(截至 2010 年 3 月 10 日中午)发布的答案中的一些链接需要密钥库文件。有没有一种简单的方法可以以编程方式生成我需要的密钥?

java sockets encryption ssl

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

Hibernate 映射中 2 级继承的问题

这是我的班级结构:

class A
class B extends A
class C extends A
class D extends C
class E extends C
Run Code Online (Sandbox Code Playgroud)

这是我的映射(为简洁起见,省略了类体):

A类:

@Entity
@Inheritance(strategy=InheritanceType.SINGLE_TABLE)
@MappedSuperclass
@DiscriminatorColumn(
        name="className",
        discriminatorType=DiscriminatorType.STRING
)
@ForceDiscriminator
public abstract class A
Run Code Online (Sandbox Code Playgroud)

B类:

@Entity
@DiscriminatorValue("B")
public class B extends A
Run Code Online (Sandbox Code Playgroud)

C类:

@Entity
@DiscriminatorValue("C")
@MappedSuperclass
@DiscriminatorColumn(
        name="cType",
        discriminatorType=DiscriminatorType.STRING
)
@ForceDiscriminator
public abstract class C extends A
Run Code Online (Sandbox Code Playgroud)

D类:

@Entity
@DiscriminatorValue("D")
public class D extends C
Run Code Online (Sandbox Code Playgroud)

E类:

@Entity
@DiscriminatorValue("E")
public class E extends C
Run Code Online (Sandbox Code Playgroud)

我有一个包含一组 A 的 F 类:

@Entity
public class …
Run Code Online (Sandbox Code Playgroud)

java hibernate hibernate-annotations

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

需要通过https和spring security进行身份验证吗?

我正在使用tomcat 6,spring mvc 3.0.0和spring security 3.0.0,并且由于我在数据库中存储的密码是sha1哈希,我不能使用摘要式身份验证(文档的第9.2.1节说明了).出于这个原因,我需要通过https进行身份验证.

由于潜在的处理开销,我希望尽可能多地保持常规http流量.有没有办法让spring使用https来获取未经身份验证的请求,然后在完成身份验证后使用http?我认为这是通过某种类型的ChannelProcessingFilter来完成的,但我对这些细节感到难过.

这是我目前的application-security.xml文件:

<beans:beans xmlns="http://www.springframework.org/schema/security"
    xmlns:beans="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
                        http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-3.0.xsd">

    <http use-expressions="true">
        <intercept-url pattern="/**" access="isAuthenticated()" />
        <http-basic />
    </http>

    <authentication-manager>
        <authentication-provider user-service-ref="myUserDetailsService">
            <password-encoder hash="sha"/>
        </authentication-provider>
    </authentication-manager>

    <beans:bean id="myUserDetailsService"
        class="path.to.myUserDetailsServiceImpl">
    </beans:bean>

</beans:beans>
Run Code Online (Sandbox Code Playgroud)

谢谢您的帮助.

security authentication encryption tomcat cryptography

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

即使我期望注释,在 Eclipse 中运行的 JUnit 测试也会返回错误

(这是一个跟进问题一个。)

我在 eclipse 中遇到了 JUnit4 测试的问题。我正在尝试使用 @Test(expected=...) 注释来单元测试异常抛出。问题是当我运行测试时,它们作为错误返回而不是通过,即使我期望抛出异常。

我正在使用 Eclipse 3.4.0 和 JUnit 4.3.1。

这是代码:

要测试的类:

public class IPAddress
{
    private byte[] octets;

    private IPAddress()
    {
        octets = new byte[4];
    }

    public IPAddress(String addr) throws InvalidIPAddressException
    {
        this();

        if(addr == null || !isValid(addr))
            throw new InvalidIPAddressException(addr);

        String strOctets[] = addr.split("\\.");

        for (int i = 0; i < strOctets.length; i++)
            octets[i] = Byte.parseByte(strOctets[i]);
    }

    public static boolean isValid(String addr)
    {
        String strOctets[] = addr.split("\\.");

        if (strOctets.length != 4)
            return …
Run Code Online (Sandbox Code Playgroud)

java eclipse junit unit-testing junit4

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

UIViewController initWithNibName导致nil视图

我正在尝试制作一个始终加载相同笔尖的视图控制器.我的初始化代码如下所示:

-(id)init
{
    NSString* nibName;

    if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
        nibName = @"XIB_iPad";
    else
        nibName = @"XIB_iPhone";

    self = [super initWithNibName:nibName bundle:nil];
    if (self)
    {
        ...
    }
    return self;
}

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    return [self init];
}
Run Code Online (Sandbox Code Playgroud)

问题是该代码导致视图控制器具有零视图.我有什么问题吗?有一个更好的方法吗?

谢谢.

iphone uiviewcontroller uiview nib ios

0
推荐指数
2
解决办法
5054
查看次数