- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
下面是我的代码..我应用了Spring框架和hibernate JPA,除了一个保存它的函数之外,我的所有代码都可以工作..在其他类似的代码中,Makanan实体的服务工作得很好..我不知道在哪里错误...
有 3 个实体,其中一个有两个多对一关系..
SalesDetail 与 Sales 和 Makanan 有关系...Makanan 的所有代码都可以正常工作,但 Sales 和 SalesDetail 则不然。
当我想保存销售时,它会出现这样的错误
Exception in thread "main" org.hibernate.MappingException: Unknown entity: restodeskapp.model.Sales
at org.hibernate.impl.SessionFactoryImpl.getEntityPersister(SessionFactoryImpl.java:550)
at org.hibernate.impl.SessionImpl.getEntityPersister(SessionImpl.java:1338)
at org.hibernate.engine.ForeignKeys.isTransient(ForeignKeys.java:180)
at org.hibernate.event.def.AbstractSaveEventListener.getEntityState(AbstractSaveEventListener.java:512)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.performSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:80)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:70)
at org.hibernate.impl.SessionImpl.fireSaveOrUpdate(SessionImpl.java:507)
at org.hibernate.impl.SessionImpl.saveOrUpdate(SessionImpl.java:499)
at org.hibernate.impl.SessionImpl.saveOrUpdate(SessionImpl.java:495)
at restodeskapp.dao.BaseDaoHibernate.save(BaseDaoHibernate.java:29)
at restodeskapp.service.impl.SalesServiceImpl.save(SalesServiceImpl.java:33)
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:601)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
at com.sun.proxy.$Proxy16.save(Unknown Source)
at restodeskapp.MainSpring.main(MainSpring.java:74)
这是我的销售代码
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import org.hibernate.annotations.Cascade;
@Entity
@Table(name="T_SALES")
public class Sales implements Serializable{
@Id @GeneratedValue
@Column(name="ID")
private Long id;
@Column(name="NO_TABLE", nullable=false)
private int noTable;
@Temporal(TemporalType.TIMESTAMP)
@Column(name="SALES_DATE",nullable=false)
private Date salesDate;
@OneToMany(mappedBy="sales",cascade=CascadeType.ALL)
@Cascade(org.hibernate.annotations.CascadeType.DELETE_ORPHAN)
private List<SalesDetail> salesDetails;
@Column(name="TOTAL_SALES",precision=18,scale=0,nullable=false)
private BigDecimal totalSales;
//setter getter
}
这是我的销售详细信息
@Entity
@Table(name="T_SALES_DETAIL")
public class SalesDetail implements Serializable{
@Id @GeneratedValue
@Column(name="ID")
private Long id;
@ManyToOne
@JoinColumn(name="MAKANAN_ID",nullable=false)
private Makanan product;
@Column(name="QUANTITY",nullable=false)
private Integer quantity;
@Column(name="PRICE",nullable=false,precision=18,scale=0)
private BigDecimal price;
@Column(name="SUBTOTAL",nullable=false,precision=18,scale=0)
private BigDecimal subtotal = BigDecimal.ZERO;
@ManyToOne
@JoinColumn(name="SALES_ID",nullable=false)
private Sales sales;
//setter getter
}
基于aohibernate.java
public class BaseDaoHibernate<T> {
@SuppressWarnings("unchecked")
protected Class domainClass;
@Autowired
protected SessionFactory sessionFactory;
@SuppressWarnings("unchecked")
public BaseDaoHibernate() {
this.domainClass = (Class) ((ParameterizedType)
getClass().getGenericSuperclass())
.getActualTypeArguments()[0];
}
public T save(T domain) {
sessionFactory.getCurrentSession().saveOrUpdate(domain);
return domain;
}
@SuppressWarnings("unchecked")
public T getById(Long id) {
return (T) sessionFactory.getCurrentSession().get(domainClass, id);
}
public T delete(T domain) {
sessionFactory.getCurrentSession().delete(domain);
return domain;
}
@SuppressWarnings("unchecked")
public T getByName(String name) {
return (T) sessionFactory.getCurrentSession().get(domainClass, name);
}
@SuppressWarnings("unchecked")
public Long count() {
List list = sessionFactory.getCurrentSession().createQuery(
"select count(*) from " + domainClass.getName() + " x").list();
Long count = (Long) list.get(0);
return count;
}
@SuppressWarnings("unchecked")
public List<T> getAll() {
return sessionFactory.getCurrentSession().createQuery("from " +
domainClass.getName())
.list();
}
@SuppressWarnings("unchecked")
public List<T> getAll(int start, int num) {
return sessionFactory.getCurrentSession().createQuery("from " +
domainClass.getName())
.setFirstResult(start).setMaxResults(num)
.list();
}
}
销售服务Impl
@Service(value="salesService")
@Transactional(readOnly=true)
public class SalesServiceImpl implements SalesService{
@Autowired private SalesDao salesDao;
@Transactional
public Sales save(Sales sales) {
//agar yang digunakan adalah Date server bukan date client kalau dijalankan
//dengan arsitektur three tier
sales.setSalesDate(new Date());
return salesDao.save(sales);
}
@Transactional
public Sales delete(Sales sales) {
return salesDao.delete(sales);
}
public Sales getSales(Long id) {
Sales s = salesDao.getById(id);
Hibernate.initialize(s.getSalesDetails());
return s;
}
public List<Sales> getSales() {
return salesDao.getAll();
}
public List<Sales> getSales(int start, int num) {
return salesDao.getAll(start, num);
}
}
我的数据库架构
create table T_MAKANAN(
id integer auto_increment primary key,
`name` varchar(100) unique not null,
description varchar(777) not null,
price decimal(65) not null,
note varchar(777),
status varchar(200) not null,
type varchar(200) not null,
picture varbinary(2222222222) not null
) engine=InnoDB;
create table T_SALES(
id integer auto_increment primary key,
no_table integer(50) not null,
sales_date date not null,
total_sales decimal(65) not null
) engine=InnoDB;
create table T_SALES_DETAIL(
id integer auto_increment primary key,
quantity integer not null,
price decimal(65) not null,
subtotal decimal(65) not null,
makanan_id integer not null,
sales_id integer not null,
FOREIGN KEY (makanan_id) REFERENCES T_MAKANAN(id),
FOREIGN KEY (sales_id) REFERENCES T_SALES(id)
) engine=InnoDB;
谢谢你......
最佳答案
需要将 Sales
和 SalesDetail
类添加到 persistence.xml 文件中,如下例所示:
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"
version="1.0">
<persistence-unit name="myapp" transaction-type="RESOURCE_LOCAL">
<class>package.Sales</class>
<class>package.SalesDetail</class>
</persistence-unit>
</persistence>
关于mysql - org.hibernate.MappingException : Unknown entity SessionFactoryImpl. getEntityPersister,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16754694/
我的转储中有大约 15,000 个相同的 SessionFactoryImpl 对象: 具有传入引用的对象之一: 具有出站引用的对象之一: 我没有配置以下参数,它们是默认设置的: hibernate.
我想将来自 postgres JDBC 的 CopyManager 用于我的一个项目。但是,我在从 Grails 项目中的 sessionFactory 获取此对象的实例时遇到问题。 这是我目前的做法
此行抛出根植于 SessionFactoryImpl#getReturnTypes 方法的 NPE: Query q = em.createQuery("DELETE FROM Table t
我正在使用 Spring/Hibernate 开发一个 Web 应用程序,经过几天的生产,它变得非常慢,所以我使用 visualvm 进行了堆转储,但我不太了解如何分析结果,我什至不知道在类似的开发堆
继续求解this problem ,我使用 MAT 发现了几个“org.hibernate.impl.SessionFactoryImpl”内存泄漏: 54 instances of "org.hib
我已经用 Java 制作了 MVC webapp,但是当我每天运行一次时,由于内存错误,它再次关闭。 这个错误是这样的:线程“http-apr-12136-exec-42”中的异常 java.lang
甚至不确定如何表达这一点,因为我不确定什么是空的。 我有一个像这样配置的 hbm.xml 文件: ` reser
下面是我的代码..我应用了Spring框架和hibernate JPA,除了一个保存它的函数之外,我的所有代码都可以工作..在其他类似的代码中,Makanan实体的服务工作得很好..我不知道在哪里错误
我们使用 Spring ORM 4.2.1.RELEASE 通过 JPA 与 Hibernate 进行交互。 Hibernate 4.3.11.Final 一切正常,但是当我们尝试升级到 Hibern
我正在处理一个多模块 gradle 项目(12 个模块)。我继承了该项目,需要更新其中使用的一些库的版本。 我正在尝试切换到使用 hibernate-core 版本 5.4.10.Final。我无法理
我每次使用 Hibernate 更新实体时都会出错。这是我的故事: 我有一个带有注解@Transactional 的服务,并且正在调用 DAO.update 方法。 @Service @Transac
最近,我将我的 hibernate 更新到版本 5.2.1.Final(目前最新),将 spring 框架更新到 4.3.0.RELEASE。当我在类 StartUp 中启动应用程序时 @Servic
最近我正在将一个简单的 Grails 应用程序与 Searchable 插件集成。我发现 Searchable 插件不适用于 Hibernate 4 库。 在这里您可以找到一个示例应用程序,它仅包含干
我有一个非常简单的 Spring Boot 1.3 应用程序,我正在尝试升级到 1.4 RC1。没有什么不是开箱即用的配置。当我尝试启动应用程序或运行测试时,我得到以下信息: 12:06:27.237
我是一名优秀的程序员,十分优秀!