Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 冬眠,春天-不';我不能把我的表格填入数据库_Java_Mysql_Spring_Hibernate_Spring Mvc - Fatal编程技术网

Java 冬眠,春天-不';我不能把我的表格填入数据库

Java 冬眠,春天-不';我不能把我的表格填入数据库,java,mysql,spring,hibernate,spring-mvc,Java,Mysql,Spring,Hibernate,Spring Mvc,我现在正在学习hibernate、SpringMVC,我只想创建一个可以将对象放入数据库的应用程序。但当我想插入对象时,我遇到了问题。 我的数据库即使在插入之后也是空的,所有字段都是空的,我不知道问题到底出现在哪里 产品类别 @Entity public class Product { @Id private int id; @Column private String productId; @Column private String name; @Column private BigDeci

我现在正在学习hibernate、SpringMVC,我只想创建一个可以将对象放入数据库的应用程序。但当我想插入对象时,我遇到了问题。 我的数据库即使在插入之后也是空的,所有字段都是空的,我不知道问题到底出现在哪里

产品类别

@Entity
public class Product {
@Id
private int id;
@Column
private String productId;
@Column
private String name;
@Column
private BigDecimal unitPrice;
@Column
private String description;
@Column
private String manufacturer;
@Column
private String category;
@Column
private long unitsInStock;
@Column
private long unitsInOrder;
@Column
private boolean discontinued;
@Column
private String condition;
public Product(String productId, String name, BigDecimal unitPrice){
    this.productId = productId;
    this.name = name;
    this.unitPrice = unitPrice;
}
@Transactional
@Repository
public class InMemoryProductRepository implements ProductRepository {

@PersistenceContext
EntityManager entityManager;

private List<Product> listOfProducts = new ArrayList<Product>();

public InMemoryProductRepository() {
    Product iphone = new Product("P1234", "iPhone 5s", new BigDecimal(500));
    iphone.setDescription("Apple iPhone 5s, smartfon z 4-calowym wyswietlaczem o rozdielczosci 640x1136 oraz "
            + "8-megapikselowym aparatem");
    iphone.setCategory("Smart Phone");
    iphone.setManufacturer("Apple");
    iphone.setUnitsInStock(1000);
    iphone.setId(1);


    listOfProducts.add(iphone);

}

public void insertProductToDatabase(Product product) {
    entityManager.persist(product);
}
@Service
public class ProductServiceImpl implements ProductService{

@Autowired
ProductRepository productRepository;

public void insertProductToDatabase(Product product){
    productRepository.insertProductToDatabase(product);
}
persistence.xml

<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_2_0.xsd"
version="2.0">
<persistence-unit name="myDatabase" transaction-type="RESOURCE_LOCAL">
    <provider>org.hibernate.ejb.HibernatePersistence</provider>
    <properties>

        <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver" />
        <property name="javax.persistence.jdbc.user" value="tutorial" />
        <property name="javax.persistence.jdbc.password" value="password" />
        <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/mojabaza" />

        <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5Dialect" />
        <property name="hibernate.hbm2ddl.auto" value="update" />
    </properties>
</persistence-unit>
ProductController 我尝试在这里向数据库中插入2个对象

有人能帮我吗?:)

尝试添加
entityManager.getTransaction().commit()
插入后

但是,您可以使用更简单的方法通过spring数据进行crud操作。 比如,

public interface UserRepository extends JpaRepository<User, Long> {  }
public interface UserRepository扩展了JpaRepository{}
然后,您只需将userrepository接口自动连接到某个位置,就可以使用存储库的内置save()、delete等方法。

尝试添加
entityManager.getTransaction().commit()
插入后

但是,您可以使用更简单的方法通过spring数据进行crud操作。 比如,

public interface UserRepository extends JpaRepository<User, Long> {  }
public interface UserRepository扩展了JpaRepository{}

然后,您只需将userrepository接口自动连接到某个地方,就可以使用存储库的内置save()、delete等方法。

请注意,如果您的
ProductRepository从Spring数据扩展了Crudepository
,您根本不需要实现它——Spring数据将自动为您实现。我已经有一段时间没有手动完成这一切了,但您可能需要在持久化后刷新。当我在持久化后刷新并运行应用程序时,会写入:请求处理失败;嵌套异常是javax.persistence.TransactionRequiredException:没有正在进行的事务。请注意,如果您的
ProductRepository从Spring数据扩展了Crudepository
,您根本不需要实现它——Spring数据将自动为您实现它。我已经有一段时间没有手动完成这一切了,但您可能需要在持久化后刷新。当我在持久化后刷新并运行应用程序时,会写入:请求处理失败;嵌套异常为javax.persistence.TransactionRequiredException:没有正在进行的事务。