相关疑难解决方法(0)

使用JPA @OneToMany关联时@JoinColumn和mappedBy之间有什么区别

有什么区别:

@Entity
public class Company {

    @OneToMany(cascade = CascadeType.ALL , fetch = FetchType.LAZY)
    @JoinColumn(name = "companyIdRef", referencedColumnName = "companyId")
    private List<Branch> branches;
    ...
}
Run Code Online (Sandbox Code Playgroud)

@Entity
public class Company {

    @OneToMany(cascade = CascadeType.ALL , fetch = FetchType.LAZY, mappedBy = "companyIdRef")
    private List<Branch> branches;
    ...
}
Run Code Online (Sandbox Code Playgroud)

java orm hibernate jpa one-to-many

483
推荐指数
7
解决办法
46万
查看次数

Spring Data Repository不会删除ManyToOne Entity

我目前正在尝试使用Spring Data存储库来删除我的一些实体.删除调用在没有任何异常/错误消息的情况下工作,但之后不会删除该实体.

这些是我的实体:

public class Board implements Serializable {

    @Id
    @GeneratedValue(generator = "uuid2")
    @GenericGenerator(name = "uuid2", strategy = "uuid2")
    @Column(columnDefinition = "BINARY(16)")
    private UUID uuid;

    @OneToMany(fetch=FetchType.EAGER, cascade=CascadeType.ALL, orphanRemoval = true, mappedBy = "board")
    private List<Post> posts = new ArrayList<Post>();
}
Run Code Online (Sandbox Code Playgroud)

public class Post implements Serializable {

    @Id
    @GeneratedValue
    private long id;

    @ManyToOne(optional = false)
    @JoinColumn(name="board_uuid", updatable = false, nullable = false)
    @JsonBackReference
    private Board board;
}
Run Code Online (Sandbox Code Playgroud)

存储库尽可能简单:

@Repository
public interface PostRepository extends CrudRepository<Post, Long> {
}
Run Code Online (Sandbox Code Playgroud)

删除调用类似于

postRepository.delete(50);
Run Code Online (Sandbox Code Playgroud)

有什么想法为什么这种变化没有反映在数据库中? …

java spring hibernate spring-data-jpa

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

mappedBy和inverse属性是一样的吗?

我真的没有得到mappedBy属性的含义.如果我们不使用它,请告诉我它将如何影响.如果你能举出一个对我来说很棒的例子.

另外,属性mappedBy和inverse aree相同?

hibernate

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

org.hibernate.exception.ConstraintViolationException:无法执行语句

当我尝试添加应用和应用设置时,我收到以下错误.这是详细的错误消息:

org.hibernate.exception.ConstraintViolationException: could not execute statement at org.hibernate.exception.internal.SQLExceptionTypeDelegate.convert(SQLExceptionTypeDelegate.java:72) at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:49) at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:126) at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:112) at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.executeUpdate(ResultSetReturnImpl.java:211) at org.hibernate.id.IdentityGenerator$GetGeneratedKeysDelegate.executeAndExtract(IdentityGenerator.java:96) at org.hibernate.id.insert.AbstractReturningDelegate.performInsert(AbstractReturningDelegate.java:58) at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:3032) at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:3558) at org.hibernate.action.internal.EntityIdentityInsertAction.execute(EntityIdentityInsertAction.java:98) at org.hibernate.engine.spi.ActionQueue.execute(ActionQueue.java:492) at org.hibernate.engine.spi.ActionQueue.addResolvedEntityInsertAction(ActionQueue.java:197) at org.hibernate.engine.spi.ActionQueue.addInsertAction(ActionQueue.java:181) at org.hibernate.engine.spi.ActionQueue.addAction(ActionQueue.java:216) at org.hibernate.event.internal.AbstractSaveEventListener.addInsertAction(AbstractSaveEventListener.java:334) at org.hibernate.event.internal.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:289) at org.hibernate.event.internal.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:195) at org.hibernate.event.internal.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:126) at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:209) at org.hibernate.event.internal.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:55) at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:194) at org.hibernate.event.internal.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:49) at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:90) at org.hibernate.internal.SessionImpl.fireSave(SessionImpl.java:715) at org.hibernate.internal.SessionImpl.save(SessionImpl.java:707) at org.hibernate.internal.SessionImpl.save(SessionImpl.java:702) at com.ips.tvadmindao.services.TVAppService.addTVappsWithSettings(TVAppService.java:237) at TVAppserviseTest.testsSaveApps(TVAppserviseTest.java:46) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) at …

java hibernate

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

Hibernate Mappedby示例

Hibernate Docs(2.2.5.1.一对一)提供了以下示例:

@Entity
public class Customer implements Serializable {
    @OneToOne(cascade = CascadeType.ALL)
    @JoinColumn(name="passport_fk")
    public Passport getPassport() {
        ...
    }

@Entity
public class Passport implements Serializable {
    @OneToOne(mappedBy = "passport")
    public Customer getOwner() {
    ...
}   
Run Code Online (Sandbox Code Playgroud)

据我了解,Customer有一个一比一的关系Passport,这里Customer是所有者,即负责级联更新Passport.在mappedByPassport表明它有一个一对一的关系Customer,但它是不负责级联更新Customer.

Customer有一个外键约束Passport的,以及反之亦然PassportCustomer.

是什么意思@JoinColumn(name="passport_fk")Customer?如何passportmappedByPassport?它们是表示各自外键的表列吗?

java hibernate

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

在休眠中创建外键映射

我有两个表部门和员工,一个部门可以有很多员工。

如果我必须通过将 DepartmentId 作为外键来使用 hibernate 对数据库中的员工表进行建模,那么我有两个选项可用。

a) 我可以在 Department 类中创建一个列表

b) 在 Employee 类中的referencedColumnName='departmentId' 上使用@ManyToOne 和@JoinColumn。

推荐哪种方法?或者这两种方法用于完全不同的问题?

java mysql hibernate

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

Hibernate 一对多注解映射

嗨,我有一张如下所示的两张桌子。

1) 任务 - id,name 2) 资源 - id,name,defaultTask(Task.id 的外键)

映射是一对多的——一个任务可以有很多资源。

Task 的代码如下所示。

@Entity
public class Task implements Serializable {
private long m_id;
private String m_name;

@Id
@GeneratedValue(
    strategy = GenerationType.AUTO
)
public long getId() {
    return this.m_id;
}

public void setId(long id) {
    this.m_id = id;
}

public String getName() {
    return this.m_name;
}

public void setName(String name) {
    this.m_name = name;
}

@OneToMany
@JoinColumn(
    name = "defaultTask"
)
private List<Resource> m_relatedResources;

public List<Resource> getrelatedResources() {
    return m_relatedResources;
} …
Run Code Online (Sandbox Code Playgroud)

java hibernate

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

如何在春天将对象列表映射到具有休眠的表中?

我试图将用户列表映射到位置对象,但我得到映射异常.这是因为数据库无法识别List对象?或者为什么我会得到这个例外?

这是我的用户类:

@Entity
@Table(name = "users")
public class NewUser extends BaseEntity{
    private String login;
    private String fullName;

    private Location location;
    private Department department;
    private Role role;
    private Long days;
    private String team;
    private Long managerId;
    private String hiredDate;

    public String getLogin() {
        return login;
    }

    public void setLogin(String login) {
        this.login = login;
    }

    public String getFullName() {
        return fullName;
    }

    public void setFullName(String fullName) {
        this.fullName = fullName;
    }

    public Location getLocation() {
        return location;
    }

    @ManyToOne(targetEntity = Location.class) …
Run Code Online (Sandbox Code Playgroud)

java spring hibernate

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

将Ebean查询的结果转换为JSON不起作用

现在我有

@Entity
public class Argument extends Model
{
    @Id
    public Long id;

    @Required @NotEmpty @Size(max = 140)
    public String summary;

    @SuppressWarnings("unchecked")
    public static Finder<Long, Argument> find = new Finder(Long.class, Argument.class);
    ...
}
Run Code Online (Sandbox Code Playgroud)

@Entity
public class Relation extends Model
{
    @Id
    public Long id;

    @Required @ManyToOne @NotNull @JsonManagedReference
    public Argument from;
    @ManyToOne @JsonManagedReference
    public Argument toArgument;
    @ManyToOne @JsonManagedReference
    public Relation toRelation;
    @Required @NotNull
    public Integer type;
    ...
}
Run Code Online (Sandbox Code Playgroud)

基本上,Relation将两个参数(或参数和另一个关系)链接在一起.这是两个班级之间的单向关系.然而我明白了

[RuntimeException: java.lang.IllegalArgumentException: Infinite recursion 
(StackOverflowError) (through reference chain: models.Argument["relations"]-> …
Run Code Online (Sandbox Code Playgroud)

playframework ebean playframework-2.0

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

映射者:Hibernate

我是新的hibernate我通过几个(走了1,2对)的教程hibernate,甚至在我的项目实施,我得出了以下结论-

mapped by 意味着对象的另一面是所有者

这只是针对数据库的观点,实际上我是如何在数据库中创建关系的,一般mapped by用来避免不必要的表.

从java的角度来看,这对你的代码没有影响,运行的相同代码即使我们删除mapped by也会表现完全相同mapped by.

我的上述理解是否正确,如果没有,请您解释一下这种情况有何不同?

java spring hibernate

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