相关疑难解决方法(0)

Java Persistence/JPA:@Column vs @Basic

JPA @Column@Basic注释之间有什么区别?它们可以一起使用吗?如果他们可以一起使用吗?或者其中一个是否足够?

java persistence jpa

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

@ManyToOne(可选= false)与@Column(nullable = false)之间的区别是什么?

在JPA中,我很困惑何时使用属性optional=false和注释@Column(nullable=false).有什么不同?

java orm hibernate jpa

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

@ManyToOne JPA关系可以为null吗?

我有一个表有另一个表的外键(多对一关系),但我希望它可以为空.

像这样的东西:

public class SubType() {

    @Id
    @GeneratedValue(generator = "system-uuid")
    @GenericGenerator(name = "system-uuid", strategy = "uuid")
    private String id;

}

public class TopUp {

    @Column(nullable = true)
    @ManyToOne(optional = false, fetch = FetchType.LAZY)
    private SubType subType;

}
Run Code Online (Sandbox Code Playgroud)

@Column(nullable = true)抛出NullPointerException并说子类型不能为空.有没有办法让ManyToOne接受null?

java hibernate jpa hibernate-mapping many-to-one

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

JPA:我应该使用哪个?基本(可选)或列(可空)?

对于简单的字符串字段

@Entity
class Foo {

    //1. @Basic(optional = false)
    //2. @Column(length = 100, nullable = false)
    String name;
}
Run Code Online (Sandbox Code Playgroud)

我需要使用@Column注释来限制名称的长度,但我对可以为空的属性感到困惑.虽然我正在使用其他注释@ManyToOne@OneToMany那些使用optional属性,但我想@Basic(optional)用来保持大多数注释均匀.但我不能限制名称的长度@Basic.

那么,我应该在哪里注释可空属性,@Basic或者@Column

编辑

简单地说,您更喜欢哪种形式:

表格1:

@Entity
class Foo {
    @Basic(optional = false)
    @Column(length = 100)
    String name;
}
Run Code Online (Sandbox Code Playgroud)

表格2:

@Entity
class Foo {
    @Column(length = 100, nullable = false)
    String name;
}
Run Code Online (Sandbox Code Playgroud)

我个人喜欢Form 1,因为optional属性也被其他@ManyToOne注释使用,但是Form 2也很好,因为它是在单个注释中完成的.

编辑

阅读http://markmail.org/message/osod6rsauwbnkvya后,我@Basic.optional和之间有区别 …

java orm hibernate

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

我应该在JPA 2.0中何时使用@Basic(optional = false)

我在JPA中有一个单表映射的继承,Say A类和B类扩展了一些抽象实体,所以我必须在A端使A&B的列可以为空,但是如果有人试图保持A,那么A的所有字段都应该是不为null,我想通过代码强制执行此操作.我可以使用以下代码来实现此目的 -

@Entity  
@DiscriminatorValue("1")  
public Class A extends SomeAbstractEntity{    
     @Basic(optional = false)  
     private String nameOfA;  
}
Run Code Online (Sandbox Code Playgroud)

在JPA中读到了@Basic(可选= false)与@Column(nullable = false)的答案,并认为这可能是可以实现的,但想知道什么是最好的方法.

java hibernate jpa-2.0

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

@Basic(可选= false) vs @Column(nullable = false) vs @NotNull

在这三个选项中,我应该使用一个或两个或全部三个选项组合来防止空值?

@NotNull
@Column(name = "SOME_VALUE", nullable = false)
@Basic(optional = false)
private String someValue;
Run Code Online (Sandbox Code Playgroud)

请注意,我不认为这与现有问题重复。我看到许多 问题都询问这三个选项的子集,但尚未找到一个询问这三个选项中哪一个适合在现代 JPA/Hibernate 堆栈中使用的问题。

validation hibernate jpa jsr

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