{"id":753,"date":"2022-11-21T09:00:30","date_gmt":"2023-06-05T01:25:35","guid":{"rendered":"https:\/\/www.silicloud.com\/ja\/blog\/index.php\/2023\/11\/30\/%e4%bb%a5%e4%b8%8b%e3%81%af%e3%80%81%e3%83%8d%e3%82%a4%e3%83%86%e3%82%a3%e3%83%96%e3%81%aa%e6%97%a5%e6%9c%ac%e8%aa%9e%e3%81%a7%e3%81%ae%e8%a8%80%e3%81%84%e6%8f%9b%e3%81%88%e4%be%8b%e3%81%a7%e3%81%99\/"},"modified":"2025-08-01T02:10:45","modified_gmt":"2025-07-31T17:10:45","slug":"%e4%bb%a5%e4%b8%8b%e3%81%af%e3%80%81%e3%83%8d%e3%82%a4%e3%83%86%e3%82%a3%e3%83%96%e3%81%aa%e6%97%a5%e6%9c%ac%e8%aa%9e%e3%81%a7%e3%81%ae%e8%a8%80%e3%81%84%e6%8f%9b%e3%81%88%e4%be%8b%e3%81%a7%e3%81%99","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/ja\/blog\/%e4%bb%a5%e4%b8%8b%e3%81%af%e3%80%81%e3%83%8d%e3%82%a4%e3%83%86%e3%82%a3%e3%83%96%e3%81%aa%e6%97%a5%e6%9c%ac%e8%aa%9e%e3%81%a7%e3%81%ae%e8%a8%80%e3%81%84%e6%8f%9b%e3%81%88%e4%be%8b%e3%81%a7%e3%81%99\/","title":{"rendered":"\u4ee5\u4e0b\u306f\u3001\u30cd\u30a4\u30c6\u30a3\u30d6\u306a\u65e5\u672c\u8a9e\u3067\u306e\u8a00\u3044\u63db\u3048\u4f8b\u3067\u3059\u3002Hibernate\u306e\u30bb\u30c3\u30b7\u30e7\u30f3\u30de\u30fc\u30b8\u3001\u66f4\u65b0\u3001\u4fdd\u5b58\u3001\u4fdd\u5b58\u307e\u305f\u306f\u66f4\u65b0\u3001\u6c38\u7d9a\u5316\u306e\u4f8b"},"content":{"rendered":"<p>\u30cd\u30a4\u30c6\u30a3\u30d6\u306a\u65e5\u672c\u8a9e\u3067\u4ee5\u4e0b\u3092\u8a00\u3044\u63db\u3048\u308b\u3068\u3001\uff11\u3064\u306e\u30aa\u30d7\u30b7\u30e7\u30f3\u3067\u7d50\u69cb\u3067\u3059\uff1a<br \/>\nHibernate\u306e\u30bb\u30c3\u30b7\u30e7\u30f3\u306fJava\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3068Hibernate\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u306e\u9593\u306e\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9\u3067\u3059\u3002\u4eca\u65e5\u306f\u3001\u30c6\u30fc\u30d6\u30eb\u306b\u30c7\u30fc\u30bf\u3092\u4fdd\u5b58\u304a\u3088\u3073\u66f4\u65b0\u3059\u308b\u305f\u3081\u306e\u30bb\u30c3\u30b7\u30e7\u30f3\u306e\u91cd\u8981\u306a\u30e1\u30bd\u30c3\u30c9\u3092\u898b\u3066\u3044\u304d\u307e\u3059 &#8211; save\u3001saveOrUpdate\u3001persist\u3001update\u3001\u304a\u3088\u3073merge\u3002<\/p>\n<h2>\u30cf\u30a4\u30d0\u30cd\u30fc\u30c8\u306e\u30bb\u30c3\u30b7\u30e7\u30f3<\/h2>\n<h3>Hibernate\u306e\u30bb\u30c3\u30b7\u30e7\u30f3\u4fdd\u5b58<\/h3>\n<p>\u65b9\u6cd5\u540d\u304c\u793a\u3059\u3088\u3046\u306b\u3001hibernate save()\u3092\u4f7f\u7528\u3057\u3066\u30a8\u30f3\u30c6\u30a3\u30c6\u30a3\u3092\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u306b\u4fdd\u5b58\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\u3053\u306e\u30e1\u30bd\u30c3\u30c9\u306f\u30c8\u30e9\u30f3\u30b6\u30af\u30b7\u30e7\u30f3\u306e\u5916\u3067\u547c\u3073\u51fa\u3059\u3053\u3068\u304c\u3067\u304d\u308b\u305f\u3081\u3001\u79c1\u306f\u3053\u306e\u30e1\u30bd\u30c3\u30c9\u3092\u30c7\u30fc\u30bf\u4fdd\u5b58\u306b\u306f\u597d\u307e\u3057\u304f\u3042\u308a\u307e\u305b\u3093\u3002\u30c8\u30e9\u30f3\u30b6\u30af\u30b7\u30e7\u30f3\u306a\u3057\u3067\u4f7f\u7528\u3057\u3001\u30a8\u30f3\u30c6\u30a3\u30c6\u30a3\u9593\u3067\u30ab\u30b9\u30b1\u30fc\u30c9\u304c\u3042\u308b\u5834\u5408\u3001\u30bb\u30c3\u30b7\u30e7\u30f3\u3092\u30d5\u30e9\u30c3\u30b7\u30e5\u3057\u306a\u3044\u9650\u308a\u3001\u4e3b\u30a8\u30f3\u30c6\u30a3\u30c6\u30a3\u306e\u307f\u304c\u4fdd\u5b58\u3055\u308c\u307e\u3059\u3002\u30c6\u30b9\u30c8\u76ee\u7684\u306e\u305f\u3081\u306b\u30012\u3064\u306e\u30a8\u30f3\u30c6\u30a3\u30c6\u30a3\u30d3\u30fc\u30f3\u3001Employee\u3068Address\u3001\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n<pre class=\"post-pre\"><code>package com.scdev.hibernate.model;\r\n\r\nimport javax.persistence.Access;\r\nimport javax.persistence.AccessType;\r\nimport javax.persistence.Column;\r\nimport javax.persistence.Entity;\r\nimport javax.persistence.GeneratedValue;\r\nimport javax.persistence.GenerationType;\r\nimport javax.persistence.Id;\r\nimport javax.persistence.OneToOne;\r\nimport javax.persistence.Table;\r\n\r\nimport org.hibernate.annotations.Cascade;\r\n\r\n@Entity\r\n@Table(name = \"EMPLOYEE\")\r\n@Access(value=AccessType.FIELD)\r\npublic class Employee {\r\n\r\n\t@Id\r\n\t@GeneratedValue(strategy = GenerationType.IDENTITY)\r\n\t@Column(name = \"emp_id\")\r\n\tprivate long id;\r\n\r\n\t@Column(name = \"emp_name\")\r\n\tprivate String name;\r\n\r\n\t@Column(name = \"emp_salary\")\r\n\tprivate double salary;\r\n\r\n\t@OneToOne(mappedBy = \"employee\")\r\n\t@Cascade(value = org.hibernate.annotations.CascadeType.ALL)\r\n\tprivate Address address;\r\n\r\n        \/\/Getter setter methods\r\n\r\n\t@Override\r\n\tpublic String toString() {\r\n\t\treturn \"Id= \" + id + \", Name= \" + name + \", Salary= \" + salary\r\n\t\t\t\t+ \", {Address= \" + address + \"}\";\r\n\t}\r\n\r\n}\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code>package com.scdev.hibernate.model;\r\n\r\nimport javax.persistence.Access;\r\nimport javax.persistence.AccessType;\r\nimport javax.persistence.Column;\r\nimport javax.persistence.Entity;\r\nimport javax.persistence.GeneratedValue;\r\nimport javax.persistence.Id;\r\nimport javax.persistence.OneToOne;\r\nimport javax.persistence.PrimaryKeyJoinColumn;\r\nimport javax.persistence.Table;\r\n\r\nimport org.hibernate.annotations.GenericGenerator;\r\nimport org.hibernate.annotations.Parameter;\r\n\r\n@Entity\r\n@Table(name = \"ADDRESS\")\r\n@Access(value=AccessType.FIELD)\r\npublic class Address {\r\n\r\n\t@Id\r\n\t@Column(name = \"emp_id\", unique = true, nullable = false)\r\n\t@GeneratedValue(generator = \"gen\")\r\n\t@GenericGenerator(name = \"gen\", strategy = \"foreign\", parameters = { @Parameter(name = \"property\", value = \"employee\") })\r\n\tprivate long id;\r\n\r\n\t@Column(name = \"address_line1\")\r\n\tprivate String addressLine1;\r\n\r\n\t@Column(name = \"zipcode\")\r\n\tprivate String zipcode;\r\n\r\n\t@Column(name = \"city\")\r\n\tprivate String city;\r\n\r\n\t@OneToOne\r\n\t@PrimaryKeyJoinColumn\r\n\tprivate Employee employee;\r\n\r\n        \/\/Getter setter methods\r\n\r\n\t@Override\r\n\tpublic String toString() {\r\n\t\treturn \"AddressLine1= \" + addressLine1 + \", City=\" + city\r\n\t\t\t\t+ \", Zipcode=\" + zipcode;\r\n\t}\r\n}\r\n<\/code><\/pre>\n<p>\u4ee5\u4e0b\u306b\u3001\u79c1\u305f\u3061\u304c\u7570\u306a\u308b\u30b1\u30fc\u30b9\u3067save()\u30e1\u30bd\u30c3\u30c9\u3092\u547c\u3073\u51fa\u3057\u3066\u3044\u308b\u30b7\u30f3\u30d7\u30eb\u306aHibernate\u30d7\u30ed\u30b0\u30e9\u30e0\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n<pre class=\"post-pre\"><code>package com.scdev.hibernate.main;\r\n\r\nimport org.hibernate.Session;\r\nimport org.hibernate.SessionFactory;\r\nimport org.hibernate.Transaction;\r\n\r\nimport com.scdev.hibernate.model.Address;\r\nimport com.scdev.hibernate.model.Employee;\r\nimport com.scdev.hibernate.util.HibernateUtil;\r\n\r\npublic class HibernateSaveExample {\r\n\r\n\tpublic static void main(String[] args) {\r\n\t\t\r\n\t\t\/\/ Prep Work\r\n\t\tSessionFactory sessionFactory = HibernateUtil.getSessionFactory();\r\n\t\t\r\n\t\t\/\/save example - without transaction\r\n\t\tSession session = sessionFactory.openSession();\r\n\t\tEmployee emp = getTestEmployee();\r\n\t\tlong id = (Long) session.save(emp);\r\n\t\tSystem.out.println(\"1. Employee save called without transaction, id=\"+id);\r\n\t\tsession.flush(); \/\/address will not get saved without this\r\n\t\tSystem.out.println(\"*****\");\r\n\t\t\r\n\t\t\/\/save example - with transaction\r\n\t\tTransaction tx1 = session.beginTransaction();\r\n\t\tSession session1 = sessionFactory.openSession();\r\n\t\tEmployee emp1 = getTestEmployee();\r\n\t\tlong id1 = (Long) session1.save(emp1);\r\n\t\tSystem.out.println(\"2. Employee save called with transaction, id=\"+id1);\r\n\t\tSystem.out.println(\"3. Before committing save transaction\");\r\n\t\ttx1.commit();\r\n\t\tSystem.out.println(\"4. After committing save transaction\");\r\n\t\tSystem.out.println(\"*****\");\r\n\t\t\r\n\t\t\/\/save example - existing row in table\r\n\t\tSession session6 = sessionFactory.openSession();\r\n\t\tTransaction tx6 = session6.beginTransaction();\r\n\t\tEmployee emp6 =  (Employee) session6.load(Employee.class, new Long(20));\r\n\t\t\r\n\t\t\/\/update some data\r\n\t\tSystem.out.println(\"Employee Details=\"+emp6);\r\n\t\temp6.setName(\"New Name\");\r\n\t\temp6.getAddress().setCity(\"New City\");\r\n\t\t\r\n\t\tlong id6 = (Long) session6.save(emp6);\r\n\t\temp6.setName(\"New Name1\"); \/\/ will get updated in database\r\n\t\tSystem.out.println(\"5. Employee save called with transaction, id=\"+id6);\r\n\t\tSystem.out.println(\"6. Before committing save transaction\");\r\n\t\ttx6.commit();\r\n\t\tSystem.out.println(\"7. After committing save transaction\");\r\n\t\tSystem.out.println(\"*****\");\r\n\t\t\r\n\t\t\/\/ Close resources\r\n\t\tsessionFactory.close();\r\n\r\n\t}\r\n\r\n\tpublic static Employee getTestEmployee() {\r\n\t\tEmployee emp = new Employee();\r\n\t\tAddress add = new Address();\r\n\t\temp.setName(\"Test Emp\");\r\n\t\temp.setSalary(1000);\r\n\t\tadd.setAddressLine1(\"Test address1\");\r\n\t\tadd.setCity(\"Test City\");\r\n\t\tadd.setZipcode(\"12121\");\r\n\t\temp.setAddress(add);\r\n\t\tadd.setEmployee(emp);\r\n\t\treturn emp;\r\n\t}\r\n}\r\n<\/code><\/pre>\n<p>\u4e0a\u8a18\u306e\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u5b9f\u884c\u3059\u308b\u3068\u3001\u6b21\u306e\u51fa\u529b\u304c\u751f\u6210\u3055\u308c\u307e\u3059\u3002<\/p>\n<pre class=\"post-pre\"><code>Hibernate: insert into EMPLOYEE (emp_name, emp_salary) values (?, ?)\r\n1. Employee save called without transaction, id=149\r\nHibernate: insert into ADDRESS (address_line1, city, zipcode, emp_id) values (?, ?, ?, ?)\r\n*****\r\nHibernate: insert into EMPLOYEE (emp_name, emp_salary) values (?, ?)\r\n2. Employee save called with transaction, id=150\r\n3. Before committing save transaction\r\nHibernate: insert into ADDRESS (address_line1, city, zipcode, emp_id) values (?, ?, ?, ?)\r\n4. After committing save transaction\r\n*****\r\nHibernate: select employee0_.emp_id as emp_id1_1_0_, employee0_.emp_name as emp_name2_1_0_, employee0_.emp_salary as emp_sala3_1_0_, address1_.emp_id as emp_id1_0_1_, address1_.address_line1 as address_2_0_1_, address1_.city as city3_0_1_, address1_.zipcode as zipcode4_0_1_ from EMPLOYEE employee0_ left outer join ADDRESS address1_ on employee0_.emp_id=address1_.emp_id where employee0_.emp_id=?\r\nEmployee Details=Id= 20, Name= Kumar1, Salary= 1000.0, {Address= AddressLine1= Test address1, City=Blr, Zipcode=12121}\r\n5. Employee save called with transaction, id=20\r\n6. Before committing save transaction\r\nHibernate: update EMPLOYEE set emp_name=?, emp_salary=? where emp_id=?\r\nHibernate: update ADDRESS set address_line1=?, city=?, zipcode=? where emp_id=?\r\n7. After committing save transaction\r\n*****\r\n<\/code><\/pre>\n<p>\u4e0a\u8a18\u306e\u51fa\u529b\u304b\u3089\u78ba\u8a8d\u3067\u304d\u308b\u3044\u304f\u3064\u304b\u306e\u91cd\u8981\u306a\u30dd\u30a4\u30f3\u30c8\u306f\u6b21\u306e\u3068\u304a\u308a\u3067\u3059\u3002<\/p>\n<ul class=\"post-ul\">\n<li>We should avoid save outside transaction boundary, otherwise mapped entities will not be saved causing data inconsistency. It\u2019s very normal to forget flushing the session because it doesn\u2019t throw any exception or warnings.<\/li>\n<li>Hibernate save method returns the generated id immediately, this is possible because primary object is saved as soon as save method is invoked.<\/li>\n<li>If there are other objects mapped from the primary object, they gets saved at the time of committing transaction or when we flush the session.<\/li>\n<li>For objects that are in persistent state, save updates the data through update query. Notice that it happens when transaction is committed. If there are no changes in the object, there wont be any query fired. If you will run above program multiple times, you will notice that update queries are not fired next time because there is no change in the column values.<\/li>\n<li>Hibernate save load entity object to persistent context, if you will update the object properties after the save call but before the transaction is committed, it will be saved into database.<\/li>\n<\/ul>\n<h3>\u30d2\u30d0\u30cd\u30a4\u30c8 Persist<\/h3>\n<p>Hibernate\u306epersist\u30e1\u30bd\u30c3\u30c9\u306f\u3001save\u30e1\u30bd\u30c3\u30c9\u3068\u4f3c\u3066\u3044\u307e\u3059\uff08\u30c8\u30e9\u30f3\u30b6\u30af\u30b7\u30e7\u30f3\u3092\u542b\u3080\u3082\u306e\uff09\u304c\u3001\u30a8\u30f3\u30c6\u30a3\u30c6\u30a3\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3092\u6c38\u7d9a\u7684\u306a\u30b3\u30f3\u30c6\u30ad\u30b9\u30c8\u306b\u8ffd\u52a0\u3059\u308b\u305f\u3081\u3001\u305d\u306e\u5f8c\u306e\u5909\u66f4\u3082\u8ffd\u8de1\u3055\u308c\u307e\u3059\u3002\u30c8\u30e9\u30f3\u30b6\u30af\u30b7\u30e7\u30f3\u304c\u30b3\u30df\u30c3\u30c8\u3055\u308c\u308b\u304b\u30bb\u30c3\u30b7\u30e7\u30f3\u304c\u30d5\u30e9\u30c3\u30b7\u30e5\u3055\u308c\u308b\u524d\u306b\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306e\u30d7\u30ed\u30d1\u30c6\u30a3\u304c\u5909\u66f4\u3055\u308c\u305f\u5834\u5408\u3001\u305d\u308c\u3082\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u306b\u4fdd\u5b58\u3055\u308c\u307e\u3059\u30022\u3064\u76ee\u306e\u9055\u3044\u306f\u3001persist()\u30e1\u30bd\u30c3\u30c9\u306f\u30c8\u30e9\u30f3\u30b6\u30af\u30b7\u30e7\u30f3\u306e\u7bc4\u56f2\u5185\u3067\u3057\u304b\u4f7f\u7528\u3067\u304d\u306a\u3044\u3053\u3068\u3067\u3042\u308a\u3001\u5b89\u5168\u3067\u95a2\u9023\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306b\u3082\u5bfe\u5fdc\u3057\u3066\u3044\u307e\u3059\u3002\u6700\u5f8c\u306b\u3001persist\u306f\u4f55\u3082\u8fd4\u3055\u306a\u3044\u305f\u3081\u3001\u751f\u6210\u3055\u308c\u305f\u8b58\u5225\u5b50\u5024\u3092\u53d6\u5f97\u3059\u308b\u305f\u3081\u306b\u6c38\u7d9a\u5316\u3057\u305f\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3092\u4f7f\u7528\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\u6b21\u306b\u3001\u30b7\u30f3\u30d7\u30eb\u306a\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u4f7f\u7528\u3057\u3066Hibernate\u306epersist\u3092\u898b\u3066\u307f\u307e\u3057\u3087\u3046\u3002<\/p>\n<pre class=\"post-pre\"><code>package com.scdev.hibernate.main;\r\n\r\nimport org.hibernate.Session;\r\nimport org.hibernate.SessionFactory;\r\nimport org.hibernate.Transaction;\r\n\r\nimport com.scdev.hibernate.model.Employee;\r\nimport com.scdev.hibernate.util.HibernateUtil;\r\n\r\npublic class HibernatePersistExample {\r\n\r\n\tpublic static void main(String[] args) {\r\n\t\t\r\n\t\t\/\/ Prep Work\r\n\t\tSessionFactory sessionFactory = HibernateUtil.getSessionFactory();\t\r\n\t\t\r\n\t\t\/\/persist example - with transaction\r\n\t\tSession session2 = sessionFactory.openSession();\r\n\t\tTransaction tx2 = session2.beginTransaction();\r\n\t\tEmployee emp2 = HibernateSaveExample.getTestEmployee();\r\n\t\tsession2.persist(emp2);\r\n\t\tSystem.out.println(\"Persist called\");\r\n\t\temp2.setName(\"Kumar\"); \/\/ will be updated in database too\r\n\t\tSystem.out.println(\"Employee Name updated\");\r\n\t\tSystem.out.println(\"8. Employee persist called with transaction, id=\"+emp2.getId()+\", address id=\"+emp2.getAddress().getId());\r\n\t\ttx2.commit();\r\n\t\tSystem.out.println(\"*****\");\r\n\t\t\r\n\t\t\/\/ Close resources\r\n\t\tsessionFactory.close();\r\n\r\n\t}\r\n\r\n}\r\n<\/code><\/pre>\n<p>\u4e0a\u8a18\u306e\u30b3\u30fc\u30c9\u306b\u3088\u3063\u3066\u751f\u6210\u3055\u308c\u305f\u51fa\u529b\u306f\u6b21\u306e\u901a\u308a\u3067\u3059\u3002<\/p>\n<pre class=\"post-pre\"><code>Hibernate: insert into EMPLOYEE (emp_name, emp_salary) values (?, ?)\r\n8. Employee persist called with transaction, id=158, address id=158\r\nHibernate: insert into ADDRESS (address_line1, city, zipcode, emp_id) values (?, ?, ?, ?)\r\nHibernate: update EMPLOYEE set emp_name=?, emp_salary=? where emp_id=?\r\n*****\r\n<\/code><\/pre>\n<p>\u6700\u521d\u306e\u5f93\u696d\u54e1\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u304c\u633f\u5165\u3055\u308c\u3001\u30c8\u30e9\u30f3\u30b6\u30af\u30b7\u30e7\u30f3\u306e\u30b3\u30df\u30c3\u30c8\u6642\u306b\u540d\u524d\u306e\u5024\u3092\u66f4\u65b0\u3059\u308b\u305f\u3081\u306e\u30af\u30a8\u30ea\u304c\u5b9f\u884c\u3055\u308c\u308b\u3053\u3068\u306b\u6c17\u3065\u304f\u3002\u307e\u305f\u3001\u30de\u30c3\u30d7\u3055\u308c\u305f\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306e\u30a2\u30c9\u30ec\u30b9\u304c\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u306b\u4fdd\u5b58\u3055\u308c\u308b\u3002<\/p>\n<h3>\u30d2\u30d9\u30eb\u30cd\u30fc\u30c8\u306esaveOrUpdate\u6a5f\u80fd<\/h3>\n<p>Hibernate\u306esaveOrUpdate\u306f\u3001\u63d0\u4f9b\u3055\u308c\u305f\u30c7\u30fc\u30bf\u306b\u57fa\u3065\u3044\u3066\u3001\u633f\u5165\u307e\u305f\u306f\u66f4\u65b0\u30af\u30a8\u30ea\u306b\u7d50\u679c\u3092\u4fdd\u5b58\u3057\u307e\u3059\u3002\u30c7\u30fc\u30bf\u304c\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u306b\u5b58\u5728\u3059\u308b\u5834\u5408\u3001\u66f4\u65b0\u30af\u30a8\u30ea\u304c\u5b9f\u884c\u3055\u308c\u307e\u3059\u3002\u30c8\u30e9\u30f3\u30b6\u30af\u30b7\u30e7\u30f3\u306a\u3057\u3067\u3082saveOrUpdate()\u3092\u4f7f\u7528\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u304c\u3001\u30bb\u30c3\u30b7\u30e7\u30f3\u304c\u30d5\u30e9\u30c3\u30b7\u30e5\u3055\u308c\u3066\u3044\u306a\u3044\u5834\u5408\u3001\u30de\u30c3\u30d7\u3055\u308c\u305f\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u304c\u4fdd\u5b58\u3055\u308c\u306a\u3044\u3068\u3044\u3046\u554f\u984c\u304c\u518d\u3073\u767a\u751f\u3059\u308b\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059\u3002Hibernate\u306esaveOrUpdate\u306f\u30a8\u30f3\u30c6\u30a3\u30c6\u30a3\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3092\u6c38\u7d9a\u7684\u306a\u30b3\u30f3\u30c6\u30ad\u30b9\u30c8\u306b\u8ffd\u52a0\u3057\u3001\u305d\u308c\u4ee5\u964d\u306e\u5909\u66f4\u3092\u8ffd\u8de1\u3057\u307e\u3059\u3002\u6c38\u7d9a\u5316\u306e\u3088\u3046\u306b\u3001\u3055\u3089\u306a\u308b\u5909\u66f4\u306f\u30c8\u30e9\u30f3\u30b6\u30af\u30b7\u30e7\u30f3\u306e\u30b3\u30df\u30c3\u30c8\u6642\u306b\u4fdd\u5b58\u3055\u308c\u307e\u3059\u3002<\/p>\n<pre class=\"post-pre\"><code>package com.scdev.hibernate.main;\r\n\r\nimport org.hibernate.Session;\r\nimport org.hibernate.SessionFactory;\r\nimport org.hibernate.Transaction;\r\n\r\nimport com.scdev.hibernate.model.Employee;\r\nimport com.scdev.hibernate.util.HibernateUtil;\r\n\r\npublic class HibernateSaveOrUpdateExample {\r\n\r\n\tpublic static void main(String[] args) {\r\n\t\t\r\n\t\t\/\/ Prep Work\r\n\t\tSessionFactory sessionFactory = HibernateUtil.getSessionFactory();\r\n\t\t\r\n\t\t\/\/saveOrUpdate example - without transaction\r\n\t\tSession session5 = sessionFactory.openSession();\r\n\t\tEmployee emp5 = HibernateSaveExample.getTestEmployee();\r\n\t\tsession5.saveOrUpdate(emp5);\r\n\t\tSystem.out.println(\"*****\");\r\n\t\t\r\n\t\t\/\/saveOrUpdate example - with transaction\r\n\t\tSession session3 = sessionFactory.openSession();\r\n\t\tTransaction tx3 = session3.beginTransaction();\r\n\t\tEmployee emp3 = HibernateSaveExample.getTestEmployee();\r\n\t\tsession3.saveOrUpdate(emp3);\r\n\t\temp3.setName(\"Kumar\"); \/\/will be saved into DB\r\n\t\tSystem.out.println(\"9. Before committing saveOrUpdate transaction. Id=\"+emp3.getId());\r\n\t\ttx3.commit();\r\n\t\tSystem.out.println(\"10. After committing saveOrUpdate transaction\");\r\n\t\tSystem.out.println(\"*****\");\r\n\t\t\r\n\t\t\r\n\t\tTransaction tx4 = session3.beginTransaction();\r\n\t\temp3.setName(\"Updated Test Name\"); \/\/Name changed\r\n\t\temp3.getAddress().setCity(\"Updated City\");\r\n\t\tsession3.saveOrUpdate(emp3);\r\n\t\temp3.setName(\"Kumar\"); \/\/again changed to previous value, so no Employee update\r\n\t\tSystem.out.println(\"11. Before committing saveOrUpdate transaction. Id=\"+emp3.getId());\r\n\t\ttx4.commit();\r\n\t\tSystem.out.println(\"12. After committing saveOrUpdate transaction\");\r\n\t\tSystem.out.println(\"*****\");\r\n\r\n\t\t\/\/ Close resources\r\n\t\tsessionFactory.close();\r\n\r\n\t}\r\n}\r\n<\/code><\/pre>\n<p>\u4e0a\u8a18\u30d7\u30ed\u30b0\u30e9\u30e0\u306f\u6b21\u306e\u51fa\u529b\u3092\u751f\u6210\u3057\u307e\u3059\u3002<\/p>\n<pre class=\"post-pre\"><code>Hibernate: insert into EMPLOYEE (emp_name, emp_salary) values (?, ?)\r\n*****\r\nHibernate: insert into EMPLOYEE (emp_name, emp_salary) values (?, ?)\r\n9. Before committing saveOrUpdate transaction. Id=166\r\nHibernate: insert into ADDRESS (address_line1, city, zipcode, emp_id) values (?, ?, ?, ?)\r\nHibernate: update EMPLOYEE set emp_name=?, emp_salary=? where emp_id=?\r\n10. After committing saveOrUpdate transaction\r\n*****\r\n11. Before committing saveOrUpdate transaction. Id=166\r\nHibernate: update ADDRESS set address_line1=?, city=?, zipcode=? where emp_id=?\r\n12. After committing saveOrUpdate transaction\r\n*****\r\n<\/code><\/pre>\n<p>\u30c8\u30e9\u30f3\u30b6\u30af\u30b7\u30e7\u30f3\u304c\u306a\u3044\u5834\u5408\u3001\u5f93\u696d\u54e1\u306e\u307f\u304c\u4fdd\u5b58\u3055\u308c\u3001\u4f4f\u6240\u60c5\u5831\u304c\u5931\u308f\u308c\u3066\u3057\u307e\u3046\u3053\u3068\u306b\u6ce8\u610f\u3057\u3066\u304f\u3060\u3055\u3044\u3002\u30c8\u30e9\u30f3\u30b6\u30af\u30b7\u30e7\u30f3\u3092\u884c\u3046\u3053\u3068\u306b\u3088\u308a\u3001\u5f93\u696d\u54e1\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306e\u5909\u66f4\u304c\u8ffd\u8de1\u3055\u308c\u307e\u3059\u3002\u305d\u306e\u305f\u3081\u3001\u6700\u5f8c\u306e\u547c\u3073\u51fa\u3057\u3067\u306f\u3001\u5f93\u696d\u54e1\u30c6\u30fc\u30d6\u30eb\u306b\u66f4\u65b0\u306f\u3042\u308a\u307e\u305b\u3093\u3002\u5024\u304c\u5909\u66f4\u3055\u308c\u305f\u9593\u306b\u3082\u3001\u6700\u7d42\u7684\u306a\u5024\u306f\u540c\u3058\u307e\u307e\u3067\u3059\u3002<\/p>\n<h3>\u30cf\u30a4\u30d0\u30cd\u30fc\u30b7\u30e7\u30f3\u306e\u30a2\u30c3\u30d7\u30c7\u30fc\u30c8<\/h3>\n<p>\u30cd\u30a4\u30c6\u30a3\u30d6\u306e\u65e5\u672c\u8a9e\u3067\u4ee5\u4e0b\u306e\u6587\u7ae0\u3092\u8a00\u3044\u63db\u3048\u307e\u3059\u3002\u9078\u629e\u80a2\u306f\u4e00\u3064\u3060\u3051\u5fc5\u8981\u3067\u3059\u3002<br \/>\n\u30a8\u30f3\u30c6\u30a3\u30c6\u30a3\u60c5\u5831\u306e\u66f4\u65b0\u306e\u307f\u3092\u884c\u3046\u5834\u5408\u306b\u306f\u3001Hibernate\u306eupdate\u30e1\u30bd\u30c3\u30c9\u3092\u4f7f\u7528\u3059\u3079\u304d\u3067\u3059\u3002\u3053\u306e\u64cd\u4f5c\u306b\u3088\u3063\u3066\u3001\u30a8\u30f3\u30c6\u30a3\u30c6\u30a3\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u304c\u6c38\u7d9a\u30b3\u30f3\u30c6\u30ad\u30b9\u30c8\u306b\u8ffd\u52a0\u3055\u308c\u3001\u3055\u3089\u306a\u308b\u5909\u66f4\u304c\u8ffd\u8de1\u3055\u308c\u3001\u30c8\u30e9\u30f3\u30b6\u30af\u30b7\u30e7\u30f3\u306e\u30b3\u30df\u30c3\u30c8\u6642\u306b\u4fdd\u5b58\u3055\u308c\u307e\u3059\u3002\u7c21\u5358\u306a\u30d7\u30ed\u30b0\u30e9\u30e0\u3067\u3053\u306e\u6319\u52d5\u3092\u78ba\u8a8d\u3057\u307e\u3057\u3087\u3046\u3002<\/p>\n<pre class=\"post-pre\"><code>package com.scdev.hibernate.main;\r\n\r\nimport org.hibernate.Session;\r\nimport org.hibernate.SessionFactory;\r\nimport org.hibernate.Transaction;\r\n\r\nimport com.scdev.hibernate.model.Employee;\r\nimport com.scdev.hibernate.util.HibernateUtil;\r\n\r\npublic class HibernateUpdateExample {\r\n\r\n\tpublic static void main(String[] args) {\r\n\r\n\t\t\/\/ Prep Work\r\n\t\tSessionFactory sessionFactory = HibernateUtil.getSessionFactory();\r\n\t\tSession session = sessionFactory.openSession();\r\n\t\tTransaction tx = session.beginTransaction();\r\n\t\tEmployee emp = (Employee) session.load(Employee.class, new Long(101));\r\n\t\tSystem.out.println(\"Employee object loaded. \" + emp);\r\n\t\ttx.commit();\r\n\r\n\t\t\/\/ update example\r\n\t\temp.setName(\"Updated name\");\r\n\t\temp.getAddress().setCity(\"Bangalore\");\r\n\t\tTransaction tx7 = session.beginTransaction();\r\n\t\tsession.update(emp);\r\n\t\temp.setName(\"Final updated name\");\r\n\t\tSystem.out.println(\"13. Before committing update transaction\");\r\n\t\ttx7.commit();\r\n\t\tSystem.out.println(\"14. After committing update transaction\");\r\n\r\n\t\t\/\/ Close resources\r\n\t\tsessionFactory.close();\r\n\r\n\t}\r\n\r\n}\r\n<\/code><\/pre>\n<p>\u521d\u3081\u3066\u4e0a\u8a18\u306e\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u5b9f\u884c\u3059\u308b\u3068\u3001\u4ee5\u4e0b\u306e\u51fa\u529b\u304c\u5f97\u3089\u308c\u307e\u3059\u3002<\/p>\n<pre class=\"post-pre\"><code>Hibernate: select employee0_.emp_id as emp_id1_1_0_, employee0_.emp_name as emp_name2_1_0_, employee0_.emp_salary as emp_sala3_1_0_, address1_.emp_id as emp_id1_0_1_, address1_.address_line1 as address_2_0_1_, address1_.city as city3_0_1_, address1_.zipcode as zipcode4_0_1_ from EMPLOYEE employee0_ left outer join ADDRESS address1_ on employee0_.emp_id=address1_.emp_id where employee0_.emp_id=?\r\nEmployee object loaded. Id= 101, Name= Test Emp, Salary= 1000.0, {Address= AddressLine1= Test address1, City=Test City, Zipcode=12121}\r\n13. Before committing update transaction\r\nHibernate: update EMPLOYEE set emp_name=?, emp_salary=? where emp_id=?\r\nHibernate: update ADDRESS set address_line1=?, city=?, zipcode=? where emp_id=?\r\n14. After committing update transaction\r\n<\/code><\/pre>\n<p>\u305d\u306e\u5f8c\u306e\u5b9f\u884c\u306b\u3088\u308a\u3001\u4ee5\u4e0b\u306e\u51fa\u529b\u304c\u5f97\u3089\u308c\u307e\u3059\u3002<\/p>\n<pre class=\"post-pre\"><code>Hibernate: select employee0_.emp_id as emp_id1_1_0_, employee0_.emp_name as emp_name2_1_0_, employee0_.emp_salary as emp_sala3_1_0_, address1_.emp_id as emp_id1_0_1_, address1_.address_line1 as address_2_0_1_, address1_.city as city3_0_1_, address1_.zipcode as zipcode4_0_1_ from EMPLOYEE employee0_ left outer join ADDRESS address1_ on employee0_.emp_id=address1_.emp_id where employee0_.emp_id=?\r\nEmployee object loaded. Id= 101, Name= Final updated name, Salary= 1000.0, {Address= AddressLine1= Test address1, City=Bangalore, Zipcode=12121}\r\n13. Before committing update transaction\r\n14. After committing update transaction\r\n<\/code><\/pre>\n<p>\u6700\u521d\u306e\u5b9f\u884c\u5f8c\u3001\u66f4\u65b0\u306f\u884c\u308f\u308c\u3066\u3044\u306a\u3044\u3053\u3068\u306b\u6ce8\u76ee\u3057\u3066\u304f\u3060\u3055\u3044\u3002\u306a\u305c\u306a\u3089\u3001\u5024\u306b\u66f4\u65b0\u304c\u306a\u3044\u304b\u3089\u3067\u3059\u3002\u307e\u305f\u3001\u300cupdate()\u300d\u30e1\u30bd\u30c3\u30c9\u3092\u547c\u3073\u51fa\u3057\u305f\u5f8c\u306b\u8a2d\u5b9a\u3057\u305f\u5f93\u696d\u54e1\u306e\u540d\u524d\u304c\u300c\u6700\u7d42\u66f4\u65b0\u540d\u300d\u3067\u3042\u308b\u3053\u3068\u306b\u3082\u6ce8\u76ee\u3057\u3066\u304f\u3060\u3055\u3044\u3002\u3053\u308c\u306b\u3088\u308a\u3001Hibernate\u304c\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306e\u5909\u66f4\u3092\u8ffd\u8de1\u3057\u3066\u304a\u308a\u3001\u30c8\u30e9\u30f3\u30b6\u30af\u30b7\u30e7\u30f3\u306e\u30b3\u30df\u30c3\u30c8\u6642\u306b\u3053\u306e\u5024\u304c\u4fdd\u5b58\u3055\u308c\u305f\u3053\u3068\u304c\u78ba\u8a8d\u3055\u308c\u307e\u3059\u3002<\/p>\n<h3>\u30cf\u30a4\u30d0\u30cd\u30fc\u30c8\u306e\u30de\u30fc\u30b8<\/h3>\n<p>\u30cf\u30a4\u30d0\u30cd\u30fc\u30c8\u306e\u30de\u30fc\u30b8\u6a5f\u80fd\u306f\u65e2\u5b58\u306e\u5024\u3092\u66f4\u65b0\u3059\u308b\u305f\u3081\u306b\u4f7f\u7528\u3067\u304d\u307e\u3059\u304c\u3001\u3053\u306e\u30e1\u30bd\u30c3\u30c9\u306f\u6e21\u3055\u308c\u305f\u30a8\u30f3\u30c6\u30a3\u30c6\u30a3\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u304b\u3089\u30b3\u30d4\u30fc\u3092\u4f5c\u6210\u3057\u3001\u305d\u308c\u3092\u8fd4\u3057\u307e\u3059\u3002\u8fd4\u3055\u308c\u305f\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306f\u6c38\u7d9a\u5316\u30b3\u30f3\u30c6\u30ad\u30b9\u30c8\u306e\u4e00\u90e8\u3067\u3042\u308a\u3001\u5909\u66f4\u304c\u8ffd\u8de1\u3055\u308c\u307e\u3059\u304c\u3001\u6e21\u3055\u308c\u305f\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306f\u8ffd\u8de1\u3055\u308c\u307e\u305b\u3093\u3002\u3053\u308c\u306f\u3001merge()\u3068\u4ed6\u306e\u3059\u3079\u3066\u306e\u30e1\u30bd\u30c3\u30c9\u3068\u306e\u4e3b\u306a\u9055\u3044\u3067\u3059\u3002\u7c21\u5358\u306a\u30d7\u30ed\u30b0\u30e9\u30e0\u3067\u3053\u308c\u3092\u898b\u3066\u307f\u307e\u3057\u3087\u3046\u3002<\/p>\n<pre class=\"post-pre\"><code>package com.scdev.hibernate.main;\r\n\r\nimport org.hibernate.Session;\r\nimport org.hibernate.SessionFactory;\r\nimport org.hibernate.Transaction;\r\n\r\nimport com.scdev.hibernate.model.Employee;\r\nimport com.scdev.hibernate.util.HibernateUtil;\r\n\r\npublic class HibernateMergeExample {\r\n\r\n\tpublic static void main(String[] args) {\r\n\r\n\t\t\/\/ Prep Work\r\n\t\tSessionFactory sessionFactory = HibernateUtil.getSessionFactory();\r\n\t\tSession session = sessionFactory.openSession();\r\n\t\tTransaction tx = session.beginTransaction();\r\n\t\tEmployee emp = (Employee) session.load(Employee.class, new Long(101));\r\n\t\tSystem.out.println(\"Employee object loaded. \" + emp);\r\n\t\ttx.commit();\r\n\r\n\t\t \/\/merge example - data already present in tables\r\n\t\t emp.setSalary(25000);\r\n\t\t Transaction tx8 = session.beginTransaction();\r\n\t\t Employee emp4 = (Employee) session.merge(emp);\r\n\t\t System.out.println(emp4 == emp); \/\/ returns false\r\n\t\t emp.setName(\"Test\");\r\n\t\t emp4.setName(\"Kumar\");\r\n\t\t System.out.println(\"15. Before committing merge transaction\");\r\n\t\t tx8.commit();\r\n\t\t System.out.println(\"16. After committing merge transaction\");\r\n\r\n\t\t\/\/ Close resources\r\n\t\tsessionFactory.close();\r\n\r\n\t}\r\n\r\n}\r\n<\/code><\/pre>\n<p>\u6700\u521d\u306e\u5b9f\u884c\u6642\u306e\u51fa\u529b\u306f:<\/p>\n<pre class=\"post-pre\"><code>Hibernate: select employee0_.emp_id as emp_id1_1_0_, employee0_.emp_name as emp_name2_1_0_, employee0_.emp_salary as emp_sala3_1_0_, address1_.emp_id as emp_id1_0_1_, address1_.address_line1 as address_2_0_1_, address1_.city as city3_0_1_, address1_.zipcode as zipcode4_0_1_ from EMPLOYEE employee0_ left outer join ADDRESS address1_ on employee0_.emp_id=address1_.emp_id where employee0_.emp_id=?\r\nEmployee object loaded. Id= 101, Name= Final updated name, Salary= 1000.0, {Address= AddressLine1= Test address1, City=Bangalore, Zipcode=12121}\r\nfalse\r\n15. Before committing merge transaction\r\nHibernate: update EMPLOYEE set emp_name=?, emp_salary=? where emp_id=?\r\n16. After committing merge transaction\r\n<\/code><\/pre>\n<p>\u3055\u3089\u306a\u308b\u5b9f\u884c\u306b\u304a\u3044\u3066\u3001\u51fa\u529b\u3055\u308c\u308b\u3082\u306e\u306f\u6b21\u306e\u3068\u304a\u308a\u3067\u3059\u3002<\/p>\n<pre class=\"post-pre\"><code>Hibernate: select employee0_.emp_id as emp_id1_1_0_, employee0_.emp_name as emp_name2_1_0_, employee0_.emp_salary as emp_sala3_1_0_, address1_.emp_id as emp_id1_0_1_, address1_.address_line1 as address_2_0_1_, address1_.city as city3_0_1_, address1_.zipcode as zipcode4_0_1_ from EMPLOYEE employee0_ left outer join ADDRESS address1_ on employee0_.emp_id=address1_.emp_id where employee0_.emp_id=?\r\nEmployee object loaded. Id= 101, Name= Kumar, Salary= 25000.0, {Address= AddressLine1= Test address1, City=Bangalore, Zipcode=12121}\r\nfalse\r\n15. Before committing merge transaction\r\n16. After committing merge transaction\r\n<\/code><\/pre>\n<p>merge()\u3067\u8fd4\u3055\u308c\u308b\u30a8\u30f3\u30c6\u30a3\u30c6\u30a3\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u304c\u3001\u6e21\u3055\u308c\u305f\u30a8\u30f3\u30c6\u30a3\u30c6\u30a3\u3068\u7570\u306a\u308b\u3053\u3068\u306b\u6ce8\u610f\u3057\u3066\u304f\u3060\u3055\u3044\u3002\u307e\u305f\u3001\u3055\u3089\u306a\u308b\u5b9f\u884c\u3067\u540d\u524d\u304c\u300cKumar\u300d\u306b\u306a\u3063\u3066\u3044\u308b\u3053\u3068\u306b\u3082\u6ce8\u610f\u3057\u3066\u304f\u3060\u3055\u3044\u3002\u3053\u308c\u306f\u3001\u8fd4\u3055\u308c\u305f\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u304c\u5909\u66f4\u3092\u8ffd\u8de1\u3059\u308b\u305f\u3081\u3067\u3059\u3002Hibernate\u306e\u30bb\u30c3\u30b7\u30e7\u30f3\u4fdd\u5b58\u304a\u3088\u3073\u66f4\u65b0\u30e1\u30bd\u30c3\u30c9\u306e\u8aac\u660e\u306f\u4ee5\u4e0a\u3067\u3059\u3002\u4e0a\u8a18\u306e\u4f8b\u304c\u3001\u3042\u306a\u305f\u304c\u6301\u3063\u3066\u3044\u308b\u7591\u554f\u3092\u660e\u78ba\u306b\u3059\u308b\u306e\u306b\u5f79\u7acb\u3064\u3053\u3068\u3092\u9858\u3063\u3066\u3044\u307e\u3059\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u30cd\u30a4\u30c6\u30a3\u30d6\u306a\u65e5\u672c\u8a9e\u3067\u4ee5\u4e0b\u3092\u8a00\u3044\u63db\u3048\u308b\u3068\u3001\uff11\u3064\u306e\u30aa\u30d7\u30b7\u30e7\u30f3\u3067\u7d50\u69cb\u3067\u3059\uff1a Hibernate\u306e\u30bb\u30c3\u30b7\u30e7\u30f3\u306fJava\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3068Hibernate\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u306e\u9593\u306e\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9\u3067\u3059\u3002\u4eca\u65e5\u306f\u3001\u30c6\u30fc\u30d6\u30eb\u306b\u30c7\u30fc\u30bf\u3092\u4fdd\u5b58\u304a [&hellip;]<\/p>\n","protected":false},"author":9,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[26,61],"class_list":["post-753","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-26","tag-61"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>\u4ee5\u4e0b\u306f\u3001\u30cd\u30a4\u30c6\u30a3\u30d6\u306a\u65e5\u672c\u8a9e\u3067\u306e\u8a00\u3044\u63db\u3048\u4f8b\u3067\u3059\u3002Hibernate\u306e\u30bb\u30c3\u30b7\u30e7\u30f3\u30de\u30fc\u30b8\u3001\u66f4\u65b0\u3001\u4fdd\u5b58\u3001\u4fdd\u5b58\u307e\u305f\u306f\u66f4\u65b0\u3001\u6c38\u7d9a\u5316\u306e\u4f8b - Blog - Silicon Cloud<\/title>\n<meta name=\"description\" content=\"\u4ee5\u4e0b\u306f\u30cd\u30a4\u30c6\u30a3\u30d6\u306a\u65e5\u672c\u8a9e\u3067\u306e\u8a00\u3044\u63db\u3048\u4f8b\u3067\u3059Hibernate\u306e\u30bb\u30c3\u30b7\u30e7\u30f3\u30de\u30fc\u30b8\u66f4\u65b0\u4fdd\u5b58\u4fdd\u5b58\u307e\u305f\u306f\u66f4\u65b0\u6c38\u7d9a\u5316\u306e\u4f8b\u3092\u5206\u304b\u308a\u3084\u3059\u304f\u89e3\u8aac\u3002\u5b9f\u8df5\u7684\u306a\u4f8b\u3068\u30b3\u30fc\u30c9\u3001\u6ce8\u610f\u70b9\u3092\u542b\u3081\u3066\u521d\u5fc3\u8005\u306b\u3082\u7406\u89e3\u3067\u304d\u308b\u3088\u3046\u8aac\u660e\u3057\u307e\u3059\u3002\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/ja\/blog\/\u4ee5\u4e0b\u306f\u3001\u30cd\u30a4\u30c6\u30a3\u30d6\u306a\u65e5\u672c\u8a9e\u3067\u306e\u8a00\u3044\u63db\u3048\u4f8b\u3067\u3059\/\" \/>\n<meta property=\"og:locale\" content=\"ja_JP\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u4ee5\u4e0b\u306f\u3001\u30cd\u30a4\u30c6\u30a3\u30d6\u306a\u65e5\u672c\u8a9e\u3067\u306e\u8a00\u3044\u63db\u3048\u4f8b\u3067\u3059\u3002Hibernate\u306e\u30bb\u30c3\u30b7\u30e7\u30f3\u30de\u30fc\u30b8\u3001\u66f4\u65b0\u3001\u4fdd\u5b58\u3001\u4fdd\u5b58\u307e\u305f\u306f\u66f4\u65b0\u3001\u6c38\u7d9a\u5316\u306e\u4f8b\" \/>\n<meta property=\"og:description\" content=\"\u4ee5\u4e0b\u306f\u30cd\u30a4\u30c6\u30a3\u30d6\u306a\u65e5\u672c\u8a9e\u3067\u306e\u8a00\u3044\u63db\u3048\u4f8b\u3067\u3059Hibernate\u306e\u30bb\u30c3\u30b7\u30e7\u30f3\u30de\u30fc\u30b8\u66f4\u65b0\u4fdd\u5b58\u4fdd\u5b58\u307e\u305f\u306f\u66f4\u65b0\u6c38\u7d9a\u5316\u306e\u4f8b\u3092\u5206\u304b\u308a\u3084\u3059\u304f\u89e3\u8aac\u3002\u5b9f\u8df5\u7684\u306a\u4f8b\u3068\u30b3\u30fc\u30c9\u3001\u6ce8\u610f\u70b9\u3092\u542b\u3081\u3066\u521d\u5fc3\u8005\u306b\u3082\u7406\u89e3\u3067\u304d\u308b\u3088\u3046\u8aac\u660e\u3057\u307e\u3059\u3002\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/ja\/blog\/\u4ee5\u4e0b\u306f\u3001\u30cd\u30a4\u30c6\u30a3\u30d6\u306a\u65e5\u672c\u8a9e\u3067\u306e\u8a00\u3044\u63db\u3048\u4f8b\u3067\u3059\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:published_time\" content=\"2023-06-05T01:25:35+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-07-31T17:10:45+00:00\" \/>\n<meta name=\"author\" content=\"\u590f\u6a39, \u98a8\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u57f7\u7b46\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"\u590f\u6a39, \u98a8\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u63a8\u5b9a\u8aad\u307f\u53d6\u308a\u6642\u9593\" \/>\n\t<meta name=\"twitter:data2\" content=\"40\u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/ja\/blog\/%e4%bb%a5%e4%b8%8b%e3%81%af%e3%80%81%e3%83%8d%e3%82%a4%e3%83%86%e3%82%a3%e3%83%96%e3%81%aa%e6%97%a5%e6%9c%ac%e8%aa%9e%e3%81%a7%e3%81%ae%e8%a8%80%e3%81%84%e6%8f%9b%e3%81%88%e4%be%8b%e3%81%a7%e3%81%99\/\",\"url\":\"https:\/\/www.silicloud.com\/ja\/blog\/%e4%bb%a5%e4%b8%8b%e3%81%af%e3%80%81%e3%83%8d%e3%82%a4%e3%83%86%e3%82%a3%e3%83%96%e3%81%aa%e6%97%a5%e6%9c%ac%e8%aa%9e%e3%81%a7%e3%81%ae%e8%a8%80%e3%81%84%e6%8f%9b%e3%81%88%e4%be%8b%e3%81%a7%e3%81%99\/\",\"name\":\"\u4ee5\u4e0b\u306f\u3001\u30cd\u30a4\u30c6\u30a3\u30d6\u306a\u65e5\u672c\u8a9e\u3067\u306e\u8a00\u3044\u63db\u3048\u4f8b\u3067\u3059\u3002Hibernate\u306e\u30bb\u30c3\u30b7\u30e7\u30f3\u30de\u30fc\u30b8\u3001\u66f4\u65b0\u3001\u4fdd\u5b58\u3001\u4fdd\u5b58\u307e\u305f\u306f\u66f4\u65b0\u3001\u6c38\u7d9a\u5316\u306e\u4f8b - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/ja\/blog\/#website\"},\"datePublished\":\"2023-06-05T01:25:35+00:00\",\"dateModified\":\"2025-07-31T17:10:45+00:00\",\"author\":{\"@id\":\"https:\/\/www.silicloud.com\/ja\/blog\/#\/schema\/person\/4e591db2661c4cc425470b461259391d\"},\"description\":\"\u4ee5\u4e0b\u306f\u30cd\u30a4\u30c6\u30a3\u30d6\u306a\u65e5\u672c\u8a9e\u3067\u306e\u8a00\u3044\u63db\u3048\u4f8b\u3067\u3059Hibernate\u306e\u30bb\u30c3\u30b7\u30e7\u30f3\u30de\u30fc\u30b8\u66f4\u65b0\u4fdd\u5b58\u4fdd\u5b58\u307e\u305f\u306f\u66f4\u65b0\u6c38\u7d9a\u5316\u306e\u4f8b\u3092\u5206\u304b\u308a\u3084\u3059\u304f\u89e3\u8aac\u3002\u5b9f\u8df5\u7684\u306a\u4f8b\u3068\u30b3\u30fc\u30c9\u3001\u6ce8\u610f\u70b9\u3092\u542b\u3081\u3066\u521d\u5fc3\u8005\u306b\u3082\u7406\u89e3\u3067\u304d\u308b\u3088\u3046\u8aac\u660e\u3057\u307e\u3059\u3002\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/ja\/blog\/%e4%bb%a5%e4%b8%8b%e3%81%af%e3%80%81%e3%83%8d%e3%82%a4%e3%83%86%e3%82%a3%e3%83%96%e3%81%aa%e6%97%a5%e6%9c%ac%e8%aa%9e%e3%81%a7%e3%81%ae%e8%a8%80%e3%81%84%e6%8f%9b%e3%81%88%e4%be%8b%e3%81%a7%e3%81%99\/#breadcrumb\"},\"inLanguage\":\"ja\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/ja\/blog\/%e4%bb%a5%e4%b8%8b%e3%81%af%e3%80%81%e3%83%8d%e3%82%a4%e3%83%86%e3%82%a3%e3%83%96%e3%81%aa%e6%97%a5%e6%9c%ac%e8%aa%9e%e3%81%a7%e3%81%ae%e8%a8%80%e3%81%84%e6%8f%9b%e3%81%88%e4%be%8b%e3%81%a7%e3%81%99\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/ja\/blog\/%e4%bb%a5%e4%b8%8b%e3%81%af%e3%80%81%e3%83%8d%e3%82%a4%e3%83%86%e3%82%a3%e3%83%96%e3%81%aa%e6%97%a5%e6%9c%ac%e8%aa%9e%e3%81%a7%e3%81%ae%e8%a8%80%e3%81%84%e6%8f%9b%e3%81%88%e4%be%8b%e3%81%a7%e3%81%99\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\/\/www.silicloud.com\/ja\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u4ee5\u4e0b\u306f\u3001\u30cd\u30a4\u30c6\u30a3\u30d6\u306a\u65e5\u672c\u8a9e\u3067\u306e\u8a00\u3044\u63db\u3048\u4f8b\u3067\u3059\u3002Hibernate\u306e\u30bb\u30c3\u30b7\u30e7\u30f3\u30de\u30fc\u30b8\u3001\u66f4\u65b0\u3001\u4fdd\u5b58\u3001\u4fdd\u5b58\u307e\u305f\u306f\u66f4\u65b0\u3001\u6c38\u7d9a\u5316\u306e\u4f8b\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/ja\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/ja\/blog\/\",\"name\":\"Blog - Silicon Cloud\",\"description\":\"\",\"inLanguage\":\"ja\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/ja\/blog\/#\/schema\/person\/4e591db2661c4cc425470b461259391d\",\"name\":\"\u590f\u6a39, \u98a8\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ja\",\"@id\":\"https:\/\/www.silicloud.com\/ja\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/65e0ff40534461b1fa000382dc194e1716f793ab0bcb218ac3c40895551a08c5?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/65e0ff40534461b1fa000382dc194e1716f793ab0bcb218ac3c40895551a08c5?s=96&d=mm&r=g\",\"caption\":\"\u590f\u6a39, \u98a8\"},\"url\":\"https:\/\/www.silicloud.com\/ja\/blog\/author\/natsukikaze\/\"},{\"@type\":\"ImageObject\",\"inLanguage\":\"ja\",\"@id\":\"https:\/\/www.silicloud.com\/ja\/blog\/%e4%bb%a5%e4%b8%8b%e3%81%af%e3%80%81%e3%83%8d%e3%82%a4%e3%83%86%e3%82%a3%e3%83%96%e3%81%aa%e6%97%a5%e6%9c%ac%e8%aa%9e%e3%81%a7%e3%81%ae%e8%a8%80%e3%81%84%e6%8f%9b%e3%81%88%e4%be%8b%e3%81%a7%e3%81%99\/#local-main-organization-logo\",\"url\":\"\",\"contentUrl\":\"\",\"caption\":\"Blog - Silicon Cloud\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"\u4ee5\u4e0b\u306f\u3001\u30cd\u30a4\u30c6\u30a3\u30d6\u306a\u65e5\u672c\u8a9e\u3067\u306e\u8a00\u3044\u63db\u3048\u4f8b\u3067\u3059\u3002Hibernate\u306e\u30bb\u30c3\u30b7\u30e7\u30f3\u30de\u30fc\u30b8\u3001\u66f4\u65b0\u3001\u4fdd\u5b58\u3001\u4fdd\u5b58\u307e\u305f\u306f\u66f4\u65b0\u3001\u6c38\u7d9a\u5316\u306e\u4f8b - Blog - Silicon Cloud","description":"\u4ee5\u4e0b\u306f\u30cd\u30a4\u30c6\u30a3\u30d6\u306a\u65e5\u672c\u8a9e\u3067\u306e\u8a00\u3044\u63db\u3048\u4f8b\u3067\u3059Hibernate\u306e\u30bb\u30c3\u30b7\u30e7\u30f3\u30de\u30fc\u30b8\u66f4\u65b0\u4fdd\u5b58\u4fdd\u5b58\u307e\u305f\u306f\u66f4\u65b0\u6c38\u7d9a\u5316\u306e\u4f8b\u3092\u5206\u304b\u308a\u3084\u3059\u304f\u89e3\u8aac\u3002\u5b9f\u8df5\u7684\u306a\u4f8b\u3068\u30b3\u30fc\u30c9\u3001\u6ce8\u610f\u70b9\u3092\u542b\u3081\u3066\u521d\u5fc3\u8005\u306b\u3082\u7406\u89e3\u3067\u304d\u308b\u3088\u3046\u8aac\u660e\u3057\u307e\u3059\u3002","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.silicloud.com\/ja\/blog\/\u4ee5\u4e0b\u306f\u3001\u30cd\u30a4\u30c6\u30a3\u30d6\u306a\u65e5\u672c\u8a9e\u3067\u306e\u8a00\u3044\u63db\u3048\u4f8b\u3067\u3059\/","og_locale":"ja_JP","og_type":"article","og_title":"\u4ee5\u4e0b\u306f\u3001\u30cd\u30a4\u30c6\u30a3\u30d6\u306a\u65e5\u672c\u8a9e\u3067\u306e\u8a00\u3044\u63db\u3048\u4f8b\u3067\u3059\u3002Hibernate\u306e\u30bb\u30c3\u30b7\u30e7\u30f3\u30de\u30fc\u30b8\u3001\u66f4\u65b0\u3001\u4fdd\u5b58\u3001\u4fdd\u5b58\u307e\u305f\u306f\u66f4\u65b0\u3001\u6c38\u7d9a\u5316\u306e\u4f8b","og_description":"\u4ee5\u4e0b\u306f\u30cd\u30a4\u30c6\u30a3\u30d6\u306a\u65e5\u672c\u8a9e\u3067\u306e\u8a00\u3044\u63db\u3048\u4f8b\u3067\u3059Hibernate\u306e\u30bb\u30c3\u30b7\u30e7\u30f3\u30de\u30fc\u30b8\u66f4\u65b0\u4fdd\u5b58\u4fdd\u5b58\u307e\u305f\u306f\u66f4\u65b0\u6c38\u7d9a\u5316\u306e\u4f8b\u3092\u5206\u304b\u308a\u3084\u3059\u304f\u89e3\u8aac\u3002\u5b9f\u8df5\u7684\u306a\u4f8b\u3068\u30b3\u30fc\u30c9\u3001\u6ce8\u610f\u70b9\u3092\u542b\u3081\u3066\u521d\u5fc3\u8005\u306b\u3082\u7406\u89e3\u3067\u304d\u308b\u3088\u3046\u8aac\u660e\u3057\u307e\u3059\u3002","og_url":"https:\/\/www.silicloud.com\/ja\/blog\/\u4ee5\u4e0b\u306f\u3001\u30cd\u30a4\u30c6\u30a3\u30d6\u306a\u65e5\u672c\u8a9e\u3067\u306e\u8a00\u3044\u63db\u3048\u4f8b\u3067\u3059\/","og_site_name":"Blog - Silicon Cloud","article_published_time":"2023-06-05T01:25:35+00:00","article_modified_time":"2025-07-31T17:10:45+00:00","author":"\u590f\u6a39, \u98a8","twitter_card":"summary_large_image","twitter_misc":{"\u57f7\u7b46\u8005":"\u590f\u6a39, \u98a8","\u63a8\u5b9a\u8aad\u307f\u53d6\u308a\u6642\u9593":"40\u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/ja\/blog\/%e4%bb%a5%e4%b8%8b%e3%81%af%e3%80%81%e3%83%8d%e3%82%a4%e3%83%86%e3%82%a3%e3%83%96%e3%81%aa%e6%97%a5%e6%9c%ac%e8%aa%9e%e3%81%a7%e3%81%ae%e8%a8%80%e3%81%84%e6%8f%9b%e3%81%88%e4%be%8b%e3%81%a7%e3%81%99\/","url":"https:\/\/www.silicloud.com\/ja\/blog\/%e4%bb%a5%e4%b8%8b%e3%81%af%e3%80%81%e3%83%8d%e3%82%a4%e3%83%86%e3%82%a3%e3%83%96%e3%81%aa%e6%97%a5%e6%9c%ac%e8%aa%9e%e3%81%a7%e3%81%ae%e8%a8%80%e3%81%84%e6%8f%9b%e3%81%88%e4%be%8b%e3%81%a7%e3%81%99\/","name":"\u4ee5\u4e0b\u306f\u3001\u30cd\u30a4\u30c6\u30a3\u30d6\u306a\u65e5\u672c\u8a9e\u3067\u306e\u8a00\u3044\u63db\u3048\u4f8b\u3067\u3059\u3002Hibernate\u306e\u30bb\u30c3\u30b7\u30e7\u30f3\u30de\u30fc\u30b8\u3001\u66f4\u65b0\u3001\u4fdd\u5b58\u3001\u4fdd\u5b58\u307e\u305f\u306f\u66f4\u65b0\u3001\u6c38\u7d9a\u5316\u306e\u4f8b - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/ja\/blog\/#website"},"datePublished":"2023-06-05T01:25:35+00:00","dateModified":"2025-07-31T17:10:45+00:00","author":{"@id":"https:\/\/www.silicloud.com\/ja\/blog\/#\/schema\/person\/4e591db2661c4cc425470b461259391d"},"description":"\u4ee5\u4e0b\u306f\u30cd\u30a4\u30c6\u30a3\u30d6\u306a\u65e5\u672c\u8a9e\u3067\u306e\u8a00\u3044\u63db\u3048\u4f8b\u3067\u3059Hibernate\u306e\u30bb\u30c3\u30b7\u30e7\u30f3\u30de\u30fc\u30b8\u66f4\u65b0\u4fdd\u5b58\u4fdd\u5b58\u307e\u305f\u306f\u66f4\u65b0\u6c38\u7d9a\u5316\u306e\u4f8b\u3092\u5206\u304b\u308a\u3084\u3059\u304f\u89e3\u8aac\u3002\u5b9f\u8df5\u7684\u306a\u4f8b\u3068\u30b3\u30fc\u30c9\u3001\u6ce8\u610f\u70b9\u3092\u542b\u3081\u3066\u521d\u5fc3\u8005\u306b\u3082\u7406\u89e3\u3067\u304d\u308b\u3088\u3046\u8aac\u660e\u3057\u307e\u3059\u3002","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/ja\/blog\/%e4%bb%a5%e4%b8%8b%e3%81%af%e3%80%81%e3%83%8d%e3%82%a4%e3%83%86%e3%82%a3%e3%83%96%e3%81%aa%e6%97%a5%e6%9c%ac%e8%aa%9e%e3%81%a7%e3%81%ae%e8%a8%80%e3%81%84%e6%8f%9b%e3%81%88%e4%be%8b%e3%81%a7%e3%81%99\/#breadcrumb"},"inLanguage":"ja","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/ja\/blog\/%e4%bb%a5%e4%b8%8b%e3%81%af%e3%80%81%e3%83%8d%e3%82%a4%e3%83%86%e3%82%a3%e3%83%96%e3%81%aa%e6%97%a5%e6%9c%ac%e8%aa%9e%e3%81%a7%e3%81%ae%e8%a8%80%e3%81%84%e6%8f%9b%e3%81%88%e4%be%8b%e3%81%a7%e3%81%99\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/ja\/blog\/%e4%bb%a5%e4%b8%8b%e3%81%af%e3%80%81%e3%83%8d%e3%82%a4%e3%83%86%e3%82%a3%e3%83%96%e3%81%aa%e6%97%a5%e6%9c%ac%e8%aa%9e%e3%81%a7%e3%81%ae%e8%a8%80%e3%81%84%e6%8f%9b%e3%81%88%e4%be%8b%e3%81%a7%e3%81%99\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/www.silicloud.com\/ja\/blog\/"},{"@type":"ListItem","position":2,"name":"\u4ee5\u4e0b\u306f\u3001\u30cd\u30a4\u30c6\u30a3\u30d6\u306a\u65e5\u672c\u8a9e\u3067\u306e\u8a00\u3044\u63db\u3048\u4f8b\u3067\u3059\u3002Hibernate\u306e\u30bb\u30c3\u30b7\u30e7\u30f3\u30de\u30fc\u30b8\u3001\u66f4\u65b0\u3001\u4fdd\u5b58\u3001\u4fdd\u5b58\u307e\u305f\u306f\u66f4\u65b0\u3001\u6c38\u7d9a\u5316\u306e\u4f8b"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/ja\/blog\/#website","url":"https:\/\/www.silicloud.com\/ja\/blog\/","name":"Blog - Silicon Cloud","description":"","inLanguage":"ja"},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/ja\/blog\/#\/schema\/person\/4e591db2661c4cc425470b461259391d","name":"\u590f\u6a39, \u98a8","image":{"@type":"ImageObject","inLanguage":"ja","@id":"https:\/\/www.silicloud.com\/ja\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/65e0ff40534461b1fa000382dc194e1716f793ab0bcb218ac3c40895551a08c5?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/65e0ff40534461b1fa000382dc194e1716f793ab0bcb218ac3c40895551a08c5?s=96&d=mm&r=g","caption":"\u590f\u6a39, \u98a8"},"url":"https:\/\/www.silicloud.com\/ja\/blog\/author\/natsukikaze\/"},{"@type":"ImageObject","inLanguage":"ja","@id":"https:\/\/www.silicloud.com\/ja\/blog\/%e4%bb%a5%e4%b8%8b%e3%81%af%e3%80%81%e3%83%8d%e3%82%a4%e3%83%86%e3%82%a3%e3%83%96%e3%81%aa%e6%97%a5%e6%9c%ac%e8%aa%9e%e3%81%a7%e3%81%ae%e8%a8%80%e3%81%84%e6%8f%9b%e3%81%88%e4%be%8b%e3%81%a7%e3%81%99\/#local-main-organization-logo","url":"","contentUrl":"","caption":"Blog - Silicon Cloud"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/ja\/blog\/wp-json\/wp\/v2\/posts\/753","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/ja\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/ja\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/ja\/blog\/wp-json\/wp\/v2\/users\/9"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/ja\/blog\/wp-json\/wp\/v2\/comments?post=753"}],"version-history":[{"count":1,"href":"https:\/\/www.silicloud.com\/ja\/blog\/wp-json\/wp\/v2\/posts\/753\/revisions"}],"predecessor-version":[{"id":44587,"href":"https:\/\/www.silicloud.com\/ja\/blog\/wp-json\/wp\/v2\/posts\/753\/revisions\/44587"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/ja\/blog\/wp-json\/wp\/v2\/media?parent=753"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/ja\/blog\/wp-json\/wp\/v2\/categories?post=753"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/ja\/blog\/wp-json\/wp\/v2\/tags?post=753"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}