- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我很难调试为什么 JPA 不级联我的 @ManyToMany 关系。我发现的所有答案都与缺少级联语句有关。但我确实拥有它们并且仍然得到:
Caused by: org.hibernate.TransientObjectException: object references an unsaved transient instance - save the transient instance before flushing: com.example.iaa.model.Employee
package com.example.iaa.repository;
import org.springframework.data.jpa.repository.JpaRepository;
import com.example.iaa.model.Employee;
public interface EmployeeRepository extends JpaRepository {
}
package com.example.iaa.repository;
import org.springframework.data.jpa.repository.JpaRepository;
import com.example.iaa.model.Role;
public interface RoleRepository extends JpaRepository {
}
package com.example.iaa.model;
import java.util.HashSet;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.ElementCollection;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
import javax.persistence.Table;
@Entity
@Table//(name = "role")
public class Role {
@Id
@GeneratedValue
private int id;
private String name;
@ElementCollection
@ManyToMany(cascade = CascadeType.ALL)
@JoinTable//(name = "employee_role", joinColumns = @JoinColumn(name = "id_role", referencedColumnName = "id"), inverseJoinColumns = @JoinColumn(name = "id_employee", referencedColumnName = "id"))
private Set employees;
public Role(String name, HashSet employees) {
this.name = name;
this.employees = employees;
}
public Role(String name) {
this.name = name;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Set getEmployees() {
return employees;
}
public void setEmployees(Set employees) {
this.employees = employees;
}
}
package com.example.iaa.model;
import java.util.Collections;
import java.util.HashSet;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.ElementCollection;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
import javax.persistence.Table;
@Entity
@Table//(name = "employee")
public class Employee {
@Id
@GeneratedValue
private int id;
private String firstName;
private String lastName;
@ElementCollection
@ManyToMany(cascade = CascadeType.ALL)
@JoinTable//(name = "employee_role", joinColumns = @JoinColumn(name = "id_employee", referencedColumnName = "id"), inverseJoinColumns = @JoinColumn(name = "id_role", referencedColumnName = "id"))
private Set roles;
public Employee(String firstName) {
this.firstName = firstName;
}
public Employee() {
roles = new HashSet();
}
public Employee(String name, HashSet roles) {
this.firstName = name;
this.roles = roles;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getDisplayName() {
return firstName + " " + lastName;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public void addRole(Role role) {
roles.add(role);
}
public Set getRoles() {
return Collections.unmodifiableSet(roles);
}
public void setRoles(Set roles) {
this.roles = roles;
}
public boolean hasRole(Role role) {
return roles.contains(role);
}
@Ghi đè
public String toString() {
String ret = "";
ret += "id: " + id + "\n";
ret += "firstName: " + firstName + "\n";
ret += "lastName: " + lastName + "\n";
ret += "displayName: " + getDisplayName() + "\n";
ret += "roles: ";
String delim = "";
for (Role role : roles) {
ret += delim + role;
delim = ",";
}
return ret;
}
}
package com.example.iaa.controller;
import java.util.HashSet;
import javax.transaction.Transactional;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import com.example.iaa.model.Employee;
import com.example.iaa.model.Role;
import com.example.iaa.repository.EmployeeRepository;
import com.example.iaa.repository.RoleRepository;
public class HelloJpaApplication {
private static final Logger logger = LoggerFactory.getLogger(HelloJpaApplication.class);
@Autowired
private RoleRepository roleRepository;
@Autowired
private EmployeeRepository employeeRepository;
@RequestMapping(value = "/jpa")
@Giao dịch
public String testJPA(final Model model) throws Exception {
// save a couple of roles
final Employee employeeA = new Employee("Employee A");
final Employee employeeB = new Employee("Employee B");
final Employee employeeC = new Employee("Employee C");
roleRepository.save(new HashSet(){{
add(new Role("Role A", new HashSet(){{
add(employeeA);
add(employeeB);
}}));
add(new Role("Role B", new HashSet(){{
add(employeeA);
add(employeeC);
}}));
}});
// fetch all roles
for(Role role : roleRepository.findAll()) {
logger.info(role.toString());
}
// save a couple of employees
final Role roleA = new Role("Role A");
final Role roleB = new Role("Role B");
employeeRepository.save(new HashSet() {{
add(new Employee("Employee A", new HashSet() {{
add(roleA);
add(roleB);
}}));
add(new Employee("Employee B", new HashSet() {{
add(roleA);
add(roleB);
}}));
}});
// fetch all employees
for(Employee employee : employeeRepository.findAll()) {
logger.info(employee.toString());
}
return "soy:iaa.index";
}
}
1 Câu trả lời
正如链接中给出的,我在下面进行了更改
@ManyToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
@JoinTable(name = "employee_role", joinColumns = @JoinColumn(name = "id_employee", referencedColumnName = "id"), inverseJoinColumns = @JoinColumn(name = "id_role", referencedColumnName = "id"))
private Set employees;
Và
@ManyToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER, mappedBy = "employees")
private Set roles;
还添加了默认构造函数和急切获取,然后它就起作用了。
关于java - JPA 对象引用未保存的 transient 实例 - 在刷新之前保存 transient 实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38618410/
Có cách nào để ép kiểu một thể hiện của lớp do người dùng định nghĩa sang một trong các kiểu này bằng cách sử dụng các hàm tạo kiểu chuẩn (ví dụ: int, set, dict, list, tuple, v.v.) theo cách do người dùng định nghĩa không? Ví dụ, lớp Ví dụ:
Tôi biết câu hỏi này đã có nhiều câu hỏi trên Stackoverflow, nhưng ngay cả với nhiều câu trả lời, những câu trả lời đó cũng không giúp ích cho tôi nhiều và tôi không tìm ra câu trả lời. Trong WebAPP của tôi, nó hoạt động tốt, nhưng khi tôi chuyển đổi nó thành API thì nó không hoạt động (nhãn chủ đề
Câu hỏi này đã có câu trả lời: Tại sao toán tử ba ngôi lại ép kiểu số nguyên một cách bất ngờ? (3 câu trả lời) Đã đóng 9 năm trước. Gần đây tôi đã gặp phải một cái bẫy Java
Tôi thử cấu hình Firebase bằng FirebaseApp.configure() nhưng tôi gặp lỗi sau: *** Đang chấm dứt ứng dụng do ngoại lệ chưa được phát hiện 'c
Tôi có một lớp thực thể nhân viên tự liên kết với các cột id, name và ref liên quan đến chính nó. Tôi muốn tạo một phiên bản mới của nó và lưu nó vào cơ sở dữ liệu. Đầu tiên tôi tạo một thể hiện của lớp Employee và đặt tên là manager. Sau đó
Tôi có một biểu mẫu để thêm căn hộ mới, trong biểu mẫu đó tôi có một menu thả xuống nơi người dùng có thể chọn người chịu trách nhiệm. Có vẻ như khi bạn chọn từ danh sách thả xuống và cố gắng lưu căn hộ, ứng dụng của tôi nghĩ rằng người đó đã bị thay đổi. Nó cho tôi lỗi sau đây chỉ ra rằng tôi nên lưu trước
Từ trang Visualforce, tôi cần lấy URL của phiên bản Salesforce của tổ chức chúng tôi, không phải URL Visual Force. Ví dụ, tôi cần https://cs1.salesforce.com
Tôi đã tìm thấy một số câu trả lời khả thi cho câu hỏi của mình, nhưng câu trả lời ở đây là về việc nâng cấp từ Hibernate 3.4.0GA lên Hibernate 4.1.8. Vì vậy, điều này từng hoạt động trong các phiên bản trước, tôi đã tìm kiếm xung quanh để biết lý do tại sao nó bị hỏng trong phiên bản mới này
Có vẻ như câu hỏi này được hỏi đi hỏi lại nhiều lần và tôi vẫn không thể tìm ra câu trả lời giải quyết được vấn đề của mình. Tôi có mô hình miền như bên dưới. Mỗi "Người dùng bảo mật" mới được tạo hoặc cập nhật đều yêu cầu tôi phải đảm bảo rằng người dùng đó có hồ sơ, nếu chưa có, tôi sẽ tạo một hồ sơ mới và chỉ định cho người dùng đó. Yêu cầu về tập tin cấu hình
Tôi đang gặp khó khăn trong việc tìm ra lý do tại sao JPA không phân tầng mối quan hệ @ManyToMany của tôi. Tất cả các câu trả lời tôi tìm thấy đều liên quan đến các câu lệnh cascade bị thiếu. Nhưng tôi có chúng và vẫn nhận được: Do: org.hibernate.Transi
API Dịch vụ Play nêu rằng có một thứ gọi là Instance ID Tuy nhiên, tôi không thể nhập lớp InstanceID sau khi đưa nội dung sau vào Android Studio: biên dịch "com.go
Tôi đang sử dụng khung Seam. Tôi có 2 thực thể: Request.java @Entity @Table(name = "SRV_REQUEST") public class Request { private
Câu hỏi này liên quan đến việc xây dựng một thể hiện Monad thích hợp từ một monad, nhưng chỉ trong một số ràng buộc nhất định - ví dụ như Set
Tôi đang cố gắng thực hiện truy vấn này: StringBuffer sb = new StringBuffer(); sb.append("select p from PointsEntity p " + "where
Tôi đang cố gắng hiểu xem liệu có thể thay đổi cấu hình ngủ đông của mình và sử dụng một phiên bản MySQL duy nhất (thay vì nhiều phiên bản MySQL mà tôi hiện có) hay không: Tôi có một ứng dụng Java sử dụng chế độ ngủ đông, với 2 lược đồ
Tôi có một bố cục trượt tab bao gồm bốn tab, mỗi tab có bố cục và đoạn riêng, trong bố cục hoạt động chính của tôi, viewpager có vai trò thay đổi các tab. Một View (tab) cụ thể có sẵn trong ứng dụng
Tôi đã thấy rất nhiều bài đăng tuyên bố rằng họ có một phiên bản RDS chạy MySql nhưng không thể kết nối với nó, nhưng tôi lại không có RDS đang chạy. Tôi sử dụng phiên bản EC2 để lưu trữ blog WordPress của mình, blog này được tôi cài đặt bằng Trình cài đặt nền tảng web.
Vì tôi đang chạy một ứng dụng (Airflow) trong môi trường ảo python trên phiên bản ec-2 của mình và tôi muốn chạy lệnh trong môi trường python mặc định trên cùng phiên bản ec2 đó, nên tôi nghĩ sẽ dễ dàng hơn nếu ssh vào phiên bản của riêng tôi.
Câu hỏi này đã có câu trả lời: Cách sửa lỗi Hibernate "đối tượng tham chiếu đến một phiên bản tạm thời chưa lưu - lưu tra
Ví dụ: chạy APP1 .. ... chạy APP1 ... chạy APP2 Làm sao để báo cho Vue trong APP2 rằng tôi cần gọi APP1?
Tôi là một lập trình viên xuất sắc, rất giỏi!